扫普通二维码跳转小程序页面传动态参数
官方文檔:
掃普通鏈接二維碼打開小程序
為了方便小程序開發者更便捷地推廣小程序,兼容線下已有的二維碼,微信公眾平臺開放掃描普通鏈接二維碼跳轉小程序能力。
功能介紹
普通鏈接二維碼,是指開發者使用工具對網頁鏈接進行編碼后生成的二維碼。
線下商戶可不需更換線下二維碼,在小程序后臺完成配置后,即可在用戶掃描普通鏈接二維碼時打開小程序,使用小程序的功能。
對于普通鏈接二維碼,目前支持使用微信“掃一掃”或微信內長按識別二維碼跳轉小程序。
開放范圍
企業、媒體、政府及其他組織類型小程序。
二維碼跳轉規則
注意:從2017年5月開始,微信客戶端支持二維碼規則根據“子路徑匹配”。如原有二維碼鏈接為?http://www.qq.com/a/123456?,其中12345為業務參數,則可配置規則?http://www.qq.com/a/?實現掃碼打開小程序。
微信客戶端掃碼將按以下匹配規則控制跳轉:
常見匹配錯誤類型:
| http://www.qq.com/a/b | https://www.qq.com/a/b | 協議不一致 |
| https://www.qq.com/a/b | https://www.weixin.qq.com/a/b | 域名不一 |
| https://www.qq.com/a/b?id=123 | https://www.qq.com/a/b?id=132 | 參數不滿足前綴匹配 |
| https://www.qq.com/a/b | https://www.qq.com/a/bc | 不屬于子路徑 |
| https://www.qq.com/a/b | https://www.qq.com/a/b/123 | 規則沒有以/結尾,不支持子路徑匹配 |
二維碼內容獲取
在小程序后臺配置二維碼跳轉小程序規則之后即可使用微信(6.5.6及其以上客戶端版本)掃碼打開小程序。
二維碼鏈接內容會以參數q的形式帶給頁面,在onLoad事件中提取q參數并自行decodeURIComponent一次,即可獲取原二維碼的完整內容。
配置流程
登錄小程序后臺,進入“設置-開發設置-掃普通鏈接二維碼打開小程序”,開啟功能后即可配置二維碼規則。
二維碼規則
根據二維碼跳轉規則,開發者需要填寫需要跳轉小程序的二維碼規則。要求如下:
二維碼規則的域名須通過ICP備案的驗證。
支持http、https、ftp開頭的鏈接(如:http://wx.qq.com、https://wx.qq.com/mp/、https://wx.qq.com/mp?id=123)。
一個小程序帳號可配置不多于10個二維碼前綴規則。
前綴占用規則
開發者可選擇是否占用符合二維碼匹配規則的所有子規則。如選擇占用,則其他帳號不可申請使用滿足該前綴匹配規則的其他子規則。
如:若開發者A配置二維碼規則:https://wx.qq.com/mp?id=123,并選擇“占用所有子規則“,其他開發者將不可以配置滿足前綴匹配的子規則如https://wx.qq.com/mp?id=1234。
如提示“此規則已被占用”,請聯系對應小程序開發者溝通解決。
校驗文件
下載隨機校驗文件,并將文件上傳至服務器指定位置的目錄下,方可通過所屬權校驗。
驗證文件放置規則: 放置于URL中聲明的最后一級子目錄下,若無子目錄,則放置于host所屬服務器的頂層目錄下。請根據頁面提示將驗證文件放置在指定的目錄下。
小程序功能頁面
配置掃描二維碼后打開的小程序功能頁面路徑,如:pages/index/index。
測試調試
開發者可對已配置的二維碼規則進行測試和調試。
測試僅對指定的測試鏈接和測試范圍內的微信用戶生效,其他用戶掃碼后跳轉網頁,不影響全網用戶正常使用。在二維碼規則發布后,開發者仍然可以選擇在指定版本(開發版/體驗版/線上版本)下測試,請注意掃碼用戶要打開開發版必須提交過代碼。
測試范圍
開發者可根據開發進度選擇在開發版/體驗版/線上版本測試“普通二維碼跳轉小程序”的功能。
測試鏈接
填寫符合二維碼前綴匹配規則的二維碼完整鏈接用于測試,如包括參數,請完整填寫。
一個規則可以填寫不多于5個測試鏈接,可多次修改。若二維碼與測試鏈接匹配,且用戶微信號是小程序指定的管理員/開發者/體驗者,將打開指定版本的小程序。
發布
測試完成后開發者可將二維碼跳轉規則發布現網,發布后掃描所有符合匹配規則的二維碼,將跳轉至指定的小程序頁面。
為確保用戶體驗,小程序必須先發布代碼才可以發布二維碼跳轉規則。
一個小程序帳號一個月可發布不多于20次二維碼跳轉規則。
?
?
?
本人親測:
一開始看完官方文檔后,以為是設置了規則是https://xxx.xxx.xxx/yyy?code=123之后,我可以自己傳不一樣的動態參數進去,比如https://xxx.xxx.xxx/yyy?code=my_secret,但是發現,只要code不是123,他就無法跳轉了,真是x了dog了。。。
?
后來我頓悟了,我將二維碼規則設置為https://xxx.xxx.xxx/yyy?action=gogogo,然后,測試鏈接填https://xxx.xxx.xxx/yyy?action=gogogo&code=my_secret,然后。。。二維碼生成鏈接https://xxx.xxx.xxx/yyy?action=gogogo&code=my_secret,掃碼后,oh,yeah,順利拿到整個url,哈哈,原來我們都理解錯了。
?
這里說明一下,action這個可以隨便填,你可以用其他任何名字,只是記得自己的自定義鏈接的前面部分一定要和規則一模一樣,比如這里的action=gogogo,至于&符號后面傳什么參數就是你的自由了。
?
順便說一下小程序代碼里面獲得參數的方法:
?
只要在onLoad里面獲取options.q就可以了,拿到的queryALL就是你的整個url,對應我剛才例子里的https://xxx.xxx.xxx/yyy?action=gogogo&code=my_secret,至于要如何分割出code=my_secret就自行找方法解決了,用正則匹配就可以
?
?
總結
以上是生活随笔為你收集整理的扫普通二维码跳转小程序页面传动态参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 清华计算机两年学硕,2019清华计算机学
- 下一篇: 双路由器网络配置