小程序踩過的一個小坑---解析二維碼decodeURIComponent() url解碼

因為我們需要用戶掃碼進(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");
    }
  },

所以在這迷茫了一會。這個小坑跨過去了,在此記錄一下。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容