因為我們需要用戶掃碼進(jìn)入小程序,每一個貨柜都有一個對應(yīng)的二維碼,當(dāng)然每個二維碼里的信息也不一樣。用戶掃碼進(jìn)入小程序之后,二維碼的信息會以參數(shù)q帶進(jìn)去,而我們只能在onLoad事件中拿到這個參數(shù),
坑1:
但是獲取到的信息是經(jīng)過encodeURIComponent()編碼的,注意不是encodeURI()編碼的,所以需要用decodeURIComponent()解碼,而不能用decodeURI(),這個在文檔上沒太說明白,見文檔 mp.weixin.qq.com/debug/wxadoc/introduction/qrcode.html#二維碼跳轉(zhuǎn)規(guī)則 。
坑2:二維碼內(nèi)容獲取
在小程序后臺配置二維碼跳轉(zhuǎn)小程序規(guī)則之后即可使用微信(6.5.6及其以上客戶端版本)掃碼打開小程序。
二維碼鏈接內(nèi)容會以參數(shù)q的形式帶給頁面,
重點
注意
重點
在onLoad事件中提取q參數(shù)并自行
decodeURIComponent
一次,即可獲取原二維碼的完整內(nèi)容。
也就是說你要在代碼里機密才能獲取二維碼的參數(shù)
eg:
onLoad(options) {
if (options.scene) {
console.log("has scene");
var scene = decodeURIComponent(options.scene);
console.log("scene is ", scene);
var arrPara = scene.split("&");
var arr = [];
for (var i in arrPara) {
arr = arrPara[i].split("=");
wx.setStorageSync(arr[0],arr[1]);
console.log("setStorageSync:",arr[0],"=",arr[1]);
}
} else {
console.log("no scene");
}
},
所以在這迷茫了一會。這個小坑跨過去了,在此記錄一下。