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