微信外喚起微信小程序的方法詳解
喚起微信小程序
目的:為了跳轉(zhuǎn)到微信環(huán)境下,可以進行長按掃碼
0. 接口調(diào)用憑證
auth.getAccessToken
本接口應(yīng)在服務(wù)器端調(diào)用,詳細說明參見服務(wù)端API。
獲取小程序全局唯一后臺接口調(diào)用憑據(jù)(access_token
)。調(diào)用絕大多數(shù)后臺接口時都需使用 access_token,開發(fā)者需要進行妥善保存。 如使用云開發(fā),可通過云調(diào)用免維護 access_token 調(diào)用。如使用云托管,也可以通過微信令牌/開放接口服務(wù)免維護 access_token 調(diào)用。
請求地址
GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
請求參數(shù)
屬性 | 類型 | 默認值 | 必填 | 說明 |
---|---|---|---|---|
grant_type | string | 是 | 填寫 client_credential | |
appid | string | 是 | 小程序唯一憑證,即 AppID,可在「微信公眾平臺 - 設(shè)置 - 開發(fā)設(shè)置」頁中獲得。(需要已經(jīng)成為開發(fā)者,且?guī)ぬ枦]有異常狀態(tài)) | |
secret | string | 是 | 小程序唯一憑證密鑰,即 AppSecret,獲取方式同 appid |
返回值
Object 返回的 JSON 數(shù)據(jù)包
屬性 | 類型 | 說明 |
---|---|---|
access_token | string | 獲取到的憑證 |
expires_in | number | 憑證有效時間,單位:秒。目前是7200秒之內(nèi)的值。 |
errcode | number | 錯誤碼 |
errmsg | string | 錯誤信息 |
errcode 的合法值
值 | 說明 | 最低版本 |
---|---|---|
-1 | 系統(tǒng)繁忙,此時請開發(fā)者稍候再試 | |
0 | 請求成功 | |
40001 | AppSecret 錯誤或者 AppSecret 不屬于這個小程序,請開發(fā)者確認 AppSecret 的正確性 | |
40002 | 請確保 grant_type 字段值為 client_credential | |
40013 | 不合法的 AppID,請開發(fā)者檢查 AppID 的正確性,避免異常字符,注意大小寫 |
返回數(shù)據(jù)示例
正常返回
{"access_token":"ACCESS_TOKEN","expires_in":7200}
錯誤時返回
{"errcode":40013,"errmsg":"invalid appid"}
access_token 的存儲與更新
access_token
的存儲至少要保留 512 個字符空間;access_token
的有效期目前為 2 個小時,需定時刷新,重復(fù)獲取將導(dǎo)致上次獲取的access_token
失效;- 建議開發(fā)者使用中控服務(wù)器統(tǒng)一獲取和刷新
access_token
,其他業(yè)務(wù)邏輯服務(wù)器所使用的access_token
均來自于該中控服務(wù)器,不應(yīng)該各自去刷新,否則容易造成沖突,導(dǎo)致access_token
覆蓋而影響業(yè)務(wù); access_token
的有效期通過返回的expires_in
來傳達,目前是7200秒之內(nèi)的值,中控服務(wù)器需要根據(jù)這個有效時間提前去刷新。在刷新過程中,中控服務(wù)器可對外繼續(xù)輸出的老access_token
,此時公眾平臺后臺會保證在5分鐘內(nèi),新老access_token
都可用,這保證了第三方業(yè)務(wù)的平滑過渡;access_token
的有效時間可能會在未來有調(diào)整,所以中控服務(wù)器不僅需要內(nèi)部定時主動刷新,還需要提供被動刷新access_token
的接口,這樣便于業(yè)務(wù)服務(wù)器在API調(diào)用獲知access_token
已超時的情況下,可以觸發(fā)access_token
的刷新流程。
詳情可參考微信公眾平臺文檔 《獲取access_token》
1.生成鏈接
urllink.generate
本接口應(yīng)在服務(wù)器端調(diào)用,詳細說明參見服務(wù)端API。
本接口支持云調(diào)用。需開發(fā)者工具版本 >=
1.02.1904090
(最新穩(wěn)定版下載),wx-server-sdk
>=0.4.0
獲取小程序 URL Link,適用于短信、郵件、網(wǎng)頁、微信內(nèi)等拉起小程序的業(yè)務(wù)場景。通過該接口,可以選擇生成到期失效和永久有效的小程序鏈接,有數(shù)量限制,目前僅針對國內(nèi)非個人主體的小程序開放,詳見獲取 URL Link
調(diào)用方式:
HTTPS 調(diào)用
請求地址
POST https://api.weixin.qq.com/wxa/generate_urllink?access_token=ACCESS_TOKEN
請求參數(shù)
屬性 | 類型 | 默認值 | 必填 | 說明 |
---|---|---|---|---|
access_token / cloudbase_access_token | string | 是 | 接口調(diào)用憑證 | |
path | string | 否 | 通過 URL Link 進入的小程序頁面路徑,必須是已經(jīng)發(fā)布的小程序存在的頁面,不可攜帶 query 。path 為空時會跳轉(zhuǎn)小程序主頁 | |
query | string | 否 | 通過 URL Link 進入小程序時的query,最大1024個字符,只支持數(shù)字,大小寫英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~% | |
env_version | string | “release” | 否 | 要打開的小程序版本。正式版為 “release”,體驗版為"trial",開發(fā)版為"develop",僅在微信外打開時生效。體驗版和開發(fā)版僅在iOS 上支持,Android 將在近期支持。 |
is_expire | boolean | false | 否 | 生成的 URL Link 類型,到期失效:true,永久有效:false。注意,永久有效 Link 和有效時間超過180天的到期失效 Link 的總數(shù)上限為10萬個,詳見獲取 URL Link,生成 Link 前請仔細確認。 |
expire_type | number | 0 | 否 | 小程序 URL Link 失效類型,失效時間:0,失效間隔天數(shù):1 |
expire_time | number | 否 | 到期失效的 URL Link 的失效時間,為 Unix 時間戳。生成的到期失效 URL Link 在該時間前有效。最長有效期為1年。expire_type 為 0 必填 | |
expire_interval | number | 否 | 到期失效的URL Link的失效間隔天數(shù)。生成的到期失效URL Link在該間隔時間到達前有效。最長間隔天數(shù)為365天。expire_type 為 1 必填 | |
cloud_base | Object | 否 | 云開發(fā)靜態(tài)網(wǎng)站自定義 H5 配置參數(shù),可配置中轉(zhuǎn)的云開發(fā) H5 頁面。不填默認用官方 H5 頁面 |
cloud_base 的結(jié)構(gòu)
屬性 | 類型 | 默認值 | 必填 | 說明 |
---|---|---|---|---|
env | string | 是 | 云開發(fā)環(huán)境 | |
domain | string | 否 | 靜態(tài)網(wǎng)站自定義域名,不填則使用默認域名 | |
path | string | / | 否 | 云開發(fā)靜態(tài)網(wǎng)站 H5 頁面路徑,不可攜帶 query |
query | string | 否 | 云開發(fā)靜態(tài)網(wǎng)站 H5 頁面 query 參數(shù),最大 1024 個字符,只支持數(shù)字,大小寫英文以及部分特殊字符:`!#$&’()*+,/:;=?@-._~%`` | |
resource_appid | string | 否 | 第三方批量代云開發(fā)時必填,表示創(chuàng)建該 env 的 appid (小程序/第三方平臺) |
返回值
url_link
生成的小程序 URL Link
返回值說明
如果調(diào)用成功,會直接返回生成的小程序 URL Link。如果請求失敗,會返回 JSON 格式的數(shù)據(jù)。
示例
請求
{ "path": "/pages/publishHomework/publishHomework", "query": "", "is_expire":true, "expire_type":1, "expire_interval":1, "env_version": "release", "cloud_base": { "env": "xxx", "domain": "xxx.xx", "path": "/jump-wxa.html", "query": "a=1&b=2" } }
返回
{ "errcode": 0, "errmsg": "ok", "url_link": "URL Link" }
2.1 喚起小程序:URL Scheme
通過服務(wù)端接口或在小程序管理后臺「工具」-「生成 URL Scheme」入口可以獲取打開小程序任意頁面的 URL Scheme。適用于從短信、郵件、微信外網(wǎng)頁等場景打開小程序。 通過 URL Scheme 打開小程序的場景值為 1065。
生成的 URL Scheme 如下所示:
weixin://dl/business/?t= *TICKET*
iOS系統(tǒng)支持識別 URL Scheme,可在短信等應(yīng)用場景中直接通過Scheme跳轉(zhuǎn)小程序。
Android系統(tǒng)不支持直接識別 URL Scheme,用戶無法通過 Scheme 正常打開小程序,開發(fā)者需要使用 H5 頁面中轉(zhuǎn),再跳轉(zhuǎn)到 Scheme 實現(xiàn)打開小程序,跳轉(zhuǎn)代碼示例如下:
location.href = 'weixin://dl/business/?t= *TICKET*'
該跳轉(zhuǎn)方法可以在用戶打開 H5 時立即調(diào)用,也可以在用戶觸發(fā)事件后調(diào)用。
調(diào)用上限
Scheme 將根據(jù)是否為到期有效與失效時間參數(shù),分為短期有效Scheme與長期有效Scheme:
- 單個小程序每日生成 Scheme 上限為50萬個(包含短期有效 Scheme 與長期有效 Scheme)
- 有效時間超過180天的 Scheme 或永久有效的 Scheme 為長期有效Scheme,單個小程序總共可生成長期有效 Scheme 上限為10萬個,請謹慎調(diào)用
- 有效時間不超過180天的 Scheme 為短期有效Scheme,單個小程序生成短期有效 Scheme 不設(shè)上限
2.2 喚起小程序:URL Link
通過服務(wù)端接口可以獲取打開小程序任意頁面的 URL Link。適用于從短信、郵件、網(wǎng)頁、微信內(nèi)等場景打開小程序。 通過 URL Link 打開小程序的場景值為 1194。
生成的 URL Link 如下所示:
https://wxaurl.cn/*TICKET* 或 https://wxmpurl.cn/*TICKET*
調(diào)用上限
Link 將根據(jù)是否為到期有效與失效時間參數(shù),分為短期有效Link 與 長期有效Link:
- 單個小程序每日生成 Link 上限為50萬個(包含短期有效 Link 與長期有效 Link )
- 有效時間超過180天的 Link 或永久有效的 Link 為長期有效Link,單個小程序總共可生成長期有效 Link 上限為10萬個,請謹慎調(diào)用
- 有效時間不超過180天的 Link 為短期有效Link,單個小程序生成短期有效 Link 不設(shè)上限
注意事項
- 只能生成已發(fā)布的小程序的 URL Link。
- 在微信內(nèi)或者安卓手機打開 URL Link 時,默認會先跳轉(zhuǎn)官方 H5 中間頁,如果需要定制 H5 內(nèi)容,可以使用云開發(fā)靜態(tài)網(wǎng)站。
示例代碼
默認官方 H5 示例地址:https://wxaurl.cn/pFawq35qbfd
自定義 H5 示例地址:https://wxaurl.cn/GI7aI2G1otd
兼容性
記錄在IOS、安卓環(huán)境下各應(yīng)用調(diào)起小程序的情況
APP | 支持環(huán)境 IOS 安卓 | 其他說明 |
---|---|---|
原生瀏覽器 | ?IOS ?安卓 | |
釘釘 | ?安卓 | |
微博 | ?IOS ?安卓 | 需配置安全域名 |
小紅書 | 小紅鏈接打不開(安卓) | |
咸魚 | 聊天窗口發(fā)送的鏈接 不允許打開 | |
qq群 | ?IOS | |
知乎 | ?IOS ?安卓 | |
百度問答 | ||
百度網(wǎng)盤 | ||
快手 | ?安卓 | |
抖音 | ?IOS ?安卓 | |
uc瀏覽器 | ?IOS ?安卓 | |
百度 | ?IOS ?安卓 | |
B站 | 對話聊天不支持打開鏈接(蘋果/安卓) | |
網(wǎng)易云音樂 | ?安卓 | |
愛奇藝 |
相關(guān)鏈接
urlscheme.generate | 微信開放文檔
獲取 URL Link | 微信開放文檔
獲取 URL Scheme | 微信開放文檔
- 微信小程序 wx.request(接口調(diào)用方式)詳解及實例
- 微信小程序調(diào)用攝像頭隱藏式拍照功能
- 微信小程序頁面調(diào)用自定義組件內(nèi)的事件詳解
- 微信小程序如何調(diào)用json數(shù)據(jù)接口并解析
- 微信小程序調(diào)用攝像頭實現(xiàn)拍照功能
- 微信小程序調(diào)用微信登陸獲取openid及java做為服務(wù)端示例
- 微信小程序調(diào)用支付接口的完整流程記錄
- 使用微信小程序API,調(diào)用微信的各種內(nèi)置能力。
- 微信小程序頁面與組件之間信息傳遞與函數(shù)調(diào)用
- 微信小程序開發(fā)打開另一個小程序的實現(xiàn)方法
相關(guān)文章
詳述 Sublime Text 打開 GBK 格式中文亂碼的解決方法
這篇文章主要介紹了詳述 Sublime Text 打開 GBK 格式中文亂碼的解決方法,非常具有實用價值,需要的朋友可以參考下2017-10-10js+html5實現(xiàn)canvas繪制鏤空字體文本的方法
這篇文章主要介紹了js+html5實現(xiàn)canvas繪制鏤空字體文本的方法,涉及html5文字效果的相關(guān)技巧,需要的朋友可以參考下2015-06-06