weixin://dl/business/?t=如何生成製做外鏈跳轉微信小程序網頁接口API?

微信內部接口schema 跳轉ticket接口 的能力,大大方便了短信、郵件、外部網頁等喚起微信小程序,公衆號,二維碼,任意網頁連接。小程序

經過服務端接口或在部份內部接口入口能夠獲取打開小程序任意頁面的URL Scheme。適用於從短信、郵件、微信外網頁等場景打開小程序。 經過URL Scheme打開小程序的場景值爲 1065。
生成的URL Scheme以下所示:微信小程序

weixin://dl/business/?ticket= TICKET 或者weixin://dl/business/?t=瀏覽器

iOS系統支持識別URL Scheme,可在短信等應用場景中直接經過Scheme跳轉小程序。
Android系統不支持直接識別URL Scheme,用戶沒法經過Scheme正常打開小程序,開發者須要使用H5頁面中轉,再跳轉到Scheme實現打開小程序,跳轉代碼示例以下:微信

location.href = 'weixin://dl/business/?t= _TICKET_'
該跳轉方法能夠在用戶打開H5時當即調用,也能夠在用戶觸發事件後調用。測試

調用上限
Scheme將根據是否爲到期有效與失效時間參數,分爲短時間有效Scheme與長期有效Scheme:網站

單個小程序每日生成Scheme上限爲50萬個(包含短時間有效Scheme與長期有效Scheme)
有效時間超過31天的Scheme或永久有效的Scheme爲長期有效Scheme,單個小程序總共可生成長期有效Scheme上限爲10萬個,請謹慎調用
有效時間不超過31天的Scheme爲短時間有效Scheme,單個小程序生成短時間有效Scheme不設上限
注意事項
生成的URL Scheme僅支持從微信外打開小程序。微信內的網頁如需打開小程序請使用微信開放標籤-小程序跳轉按鈕,無公衆號也能夠直接使用小程序身份開發網頁並免鑑權跳轉小程序,見雲開發靜態網站跳轉小程序。符合開放範圍的小程序能夠下發支持打開小程序的短信。
該功能基本覆蓋當前用戶正在使用的微信版本,開發者無需進行低版本兼容。
只能生成已發佈的小程序的URL Scheme。
經過URL Scheme跳轉到微信時,可能會觸發系統彈框詢問,若用戶選擇不跳轉,則沒法打開小程序。請開發者妥善處理用戶選擇不跳轉的場景。spa

schema 連接格式大致是這樣:weixin://dl/business/?ticket=QQ10572137,可是這段文本在安卓端沒法識別。小規模測試結果以下:blog

後來想到用一個正常可以識別的網頁地址,內容是重定向到指定的 schema 連接。這就是擅長的領域了,query 參數上帶上 schema 連接,location.href 一下不就好了。這裏就不 show 代碼了,能看到文章的你必定行。接口

可是,發如今部分安卓手機下(如小米)仍是沒反應,原來簡單的 schema 跳轉水這麼深的,因而百度谷歌了一下,找到了下面兩份關鍵材料:事件

H5喚起APP進行分享的嘗試
AlanZhang001/H5CallUpNative: H5端喚醒移動客戶端程序
看源碼也很少,總結下來,因不一樣系統和瀏覽器對 schema 規範的理解不一樣,還有一些商業因素,不一樣環境下面須要用不一樣的方式進行跳轉,甚至有的環境你根本就跳不了。

時間緊,任務重。簡單處理吧,不一樣方式都來一遍,誰好使就用誰。因此簡單總結了下,能用的幾種方式:

location 跳轉
a 連接跳轉
iframe 跳轉
以上三種方式,逐一試用,最後實在不行就不行吧,簡單處理,看有沒有大神補充的。
weixin://dl/business/?ticket=如何生成製做外鏈跳轉微信網頁接口API?

是直接一進來就執行,仍是事件觸發,均可以。或者是一開始進來就執行,失敗了顯示幾個可選跳轉按鈕讓用戶手動觸發跳轉。

可是關鍵問題還有一個,如何判斷是能夠成功喚起了呢?能夠參考網址接口一鍵生成:[](https://www.jumpwx.com/)https://www.jumpwx.com/ 代碼裏提到了一個根據頁面hidden 狀態,但不夠精準,若是用戶沒有選擇跳轉到微信呢?這是另外一個須要深究的問題。

出於時間考慮,先以業務交付優先,若是有朋友知道的也能夠一塊兒討論下。

另行文時間短,以技術交流爲主,如有瑕疵,歡迎指出。

相關文章
相關標籤/搜索