手机浏览器中H5跳转微信小程序长按识别二维码
業務需求:
APP中訂購課程后發送短信通知,用戶點短信中連接進入H5,此時H5是手機瀏覽器中打開,不是微信生態所以放的客服二微碼無法長按識別。如果能H5直接進入微信生態。微信這個接口只向一些大的合作企業提供些接口,我們想用只能網上買第三方的,看過幾個第三方接口可以實現但是不穩定。
解決方案:
H5這條路走不通,那么就看看小程序。小程序中雖然不能直接長按識別二維碼,但是還好小程序有WEB_VIEW,引用H5做的二維碼就可以識別。
web-view
承載網頁的容器。會自動鋪滿整個小程序頁面,個人類型的小程序暫不支持使用。
src:webview 指向網頁的鏈接。可打開關聯的公眾號的文章,其它網頁需登錄小程序管理后臺配置業務域名。
這個問題解決了,最重要的是怎么讓H5在瀏覽器中打開直接跳轉微信生態(打開小程序),下面看看小程序的這個函數接口
urlscheme.generate
獲取小程序 scheme 碼,適用于短信、郵件、外部網頁、微信內等拉起小程序的業務場景。通過該接口,可以選擇生成到期失效和永久有效的小程序碼,有數量限制,目前僅針對國內非個人主體的小程序開放,詳見獲取 URL scheme。
HTTPS 調用
請求地址
POST https://api.weixin.qq.com/wxa/generatescheme?access_token=ACCESS_TOKEN請求參數
access_token / cloudbase_access_token | string | 是 | 接口調用憑證 | |
jump_wxa | Object | 否 | 跳轉到的目標小程序信息。 | |
is_expire | boolean | false | 否 | 生成的 scheme 碼類型,到期失效:true,永久有效:false。注意,永久有效 scheme 和有效時間超過180天的到期失效 scheme 的總數上限為10萬個,詳見獲取 URL scheme,生成 scheme 碼前請仔細確認。 |
expire_type | number | 0 | 否 | 到期失效的 scheme 碼失效類型,失效時間:0,失效間隔天數:1 |
expire_time | number | 否 | 到期失效的 scheme 碼的失效時間,為 Unix 時間戳。生成的到期失效 scheme 碼在該時間前有效。最長有效期為1年。is_expire 為 true 且 expire_type 為 0 時必填 | |
expire_interval | number | 否 | 到期失效的 scheme 碼的失效間隔天數。生成的到期失效 scheme 碼在該間隔時間到達前有效。最長間隔天數為365天。is_expire 為 true 且 expire_type 為 1 時必填 |
jump_wxa 的結構
path | string | 否 | 通過 scheme 碼進入的小程序頁面路徑,必須是已經發布的小程序存在的頁面,不可攜帶 query。path 為空時會跳轉小程序主頁。 | |
query | string | 否 | 通過 scheme 碼進入小程序時的 query,最大1024個字符,只支持數字,大小寫英文以及部分特殊字符:`!#$&'()*+,/:;=?@-._~%`` | |
env_version | string | "release" | 否 | 要打開的小程序版本。正式版為"release",體驗版為"trial",開發版為"develop",僅在微信外打開時生效。體驗版和開發版僅在iOS上支持,Android將在近期支持。 |
返回值
openlink
生成的小程序 scheme 碼
異常返回
Object
JSON
errcode | number | 錯誤碼 |
errmsg | string | 錯誤信息 |
errcode 的合法值
-1 | 系統繁忙,請稍后重試 | |
40002 | 暫無生成權限(非個人主體小程序無權限) | |
40013 | 生成權限被封禁 | |
85079 | 小程序未發布 | |
40165 | 參數path填寫錯誤 | |
40212 | 參數query填寫錯誤 | |
85401 | 參數expire_time填寫錯誤,時間間隔大于1分鐘且小于1年 | |
85402 | 參數env_version填寫錯誤 | |
44990 | 生成Scheme頻率過快(超過100次/秒) | |
85400 | 長期有效Scheme達到生成上限10萬 | |
45009 | 單天生成Scheme數量超過上限50萬 |
返回值說明
如果調用成功,會直接返回生成的小程序 scheme 碼。如果請求失敗,會返回 JSON 格式的數據。
示例
請求
{"jump_wxa":{"path": "/pages/publishHomework/publishHomework","query": ""},"is_expire":true,"expire_time":1606737600 }返回
{"errcode": 0,"errmsg": "ok","openlink": Scheme, }云調用
云調用是微信云開發提供的在云函數中調用微信開放接口的能力,需要在云函數中通過?wx-server-sdk?使用。
接口方法
openapi.urlscheme.generate需在?config.json?中配置?urlscheme.generate?API 的權限,詳情
請求參數
jumpWxa | Object | 否 | 跳轉到的目標小程序信息。 | |
isExpire | boolean | false | 否 | 生成的 scheme 碼類型,到期失效:true,永久有效:false。注意,永久有效 scheme 和有效時間超過180天的到期失效 scheme 的總數上限為10萬個,詳見獲取 URL scheme,生成 scheme 碼前請仔細確認。 |
expireType | number | 0 | 否 | 到期失效的 scheme 碼失效類型,失效時間:0,失效間隔天數:1 |
expireTime | number | 否 | 到期失效的 scheme 碼的失效時間,為 Unix 時間戳。生成的到期失效 scheme 碼在該時間前有效。最長有效期為1年。is_expire 為 true 且 expire_type 為 0 時必填 | |
expireInterval | number | 否 | 到期失效的 scheme 碼的失效間隔天數。生成的到期失效 scheme 碼在該間隔時間到達前有效。最長間隔天數為365天。is_expire 為 true 且 expire_type 為 1 時必填 |
jumpWxa 的結構
path | string | 否 | 通過 scheme 碼進入的小程序頁面路徑,必須是已經發布的小程序存在的頁面,不可攜帶 query。path 為空時會跳轉小程序主頁。 | |
query | string | 否 | 通過 scheme 碼進入小程序時的 query,最大1024個字符,只支持數字,大小寫英文以及部分特殊字符:`!#$&'()*+,/:;=?@-._~%`` | |
envVersion | string | "release" | 否 | 要打開的小程序版本。正式版為"release",體驗版為"trial",開發版為"develop",僅在微信外打開時生效。體驗版和開發版僅在iOS上支持,Android將在近期支持。 |
返回值
openlink
生成的小程序 scheme 碼
異常
Object
JSON
errCode | number | 錯誤碼 |
errMsg | string | 錯誤信息 |
errCode 的合法值
示例
請求
const cloud = require('wx-server-sdk') cloud.init({env: cloud.DYNAMIC_CURRENT_ENV, }) exports.main = async (event, context) => {try {const result = await cloud.openapi.urlscheme.generate({"jumpWxa": {"path": '/pages/publishHomework/publishHomework',"query": ''},"isExpire": true,"expireTime": 1606737600})return result} catch (err) {return err} }返回
{"errcode": 0,"errmsg": "ok","openlink": Scheme, }重要的就是獲取這個scheme
獲取 URL Scheme
通過服務端接口或在小程序管理后臺「工具」-「生成 URL Scheme」入口可以獲取打開小程序任意頁面的 URL Scheme。適用于從短信、郵件、微信外網頁等場景打開小程序。 通過 URL Scheme 打開小程序的場景值為 1065。
生成的 URL Scheme 如下所示:
iOS系統支持識別 URL Scheme,可在短信等應用場景中直接通過Scheme跳轉小程序。
Android系統不支持直接識別 URL Scheme,用戶無法通過 Scheme 正常打開小程序,開發者需要使用 H5 頁面中轉,再跳轉到 Scheme 實現打開小程序,跳轉代碼示例如下:
該跳轉方法可以在用戶打開 H5 時立即調用,也可以在用戶觸發事件后調用。
調用上限
Scheme 將根據是否為到期有效與失效時間參數,分為短期有效Scheme與長期有效Scheme:
注意事項
開放范圍
針對非個人主體小程序開放。
至此,完成瀏覽器H5到微信生態,直接可以長按識別二維碼了。
總結
以上是生活随笔為你收集整理的手机浏览器中H5跳转微信小程序长按识别二维码的全部內容,希望文章能夠幫你解決所遇到的問題。

- 上一篇: JAVA组件--表格-- JIDE G
- 下一篇: 电压转换电路整理