小程序與線(xiàn)下對(duì)接的時(shí)候程梦,用到普通二維碼這個(gè)功能來(lái)知道連接上來(lái)的是哪臺(tái)終端機(jī)窃判,但是獲取二維碼參數(shù)的時(shí)候官方就一句話(huà)帶過(guò)斜姥,現(xiàn)在記錄一下配置以及獲取的過(guò)程惑惶。
- 首先在微信公眾平臺(tái)->開(kāi)發(fā)->開(kāi)發(fā)設(shè)置->掃普通鏈接二維碼打開(kāi)小程序里配置普通鏈接二維碼規(guī)則
-
在用戶(hù)通過(guò)微信掃一掃打開(kāi)小程序之后的頁(yè)面onLoad中,原先使用option.參數(shù)的方法是獲取不到值的凄吏。
這是官方文檔給的取值說(shuō)明远舅,但是在開(kāi)發(fā)中發(fā)現(xiàn)真機(jī)測(cè)試、進(jìn)入場(chǎng)景和體驗(yàn)版小程序都無(wú)法復(fù)現(xiàn)掃碼進(jìn)來(lái)的狀態(tài)痕钢,最后只好打印發(fā)布在線(xiàn)上图柏,然后通過(guò)線(xiàn)上打印的方式查看掃描的參數(shù)是什么。
image.png -
圖為線(xiàn)上版打印參數(shù)
image.png
onLoad: function (options) {
console.log("index 生命周期 onload" + JSON.stringify(options))
//在此函數(shù)中獲取掃描普通鏈接二維碼參數(shù)
if(options.q){
let q = decodeURIComponent(options.q);
console.log("index 生命周期 onload url=" + q)
console.log("index 生命周期 onload 參數(shù) is_water=" + utils.getQueryString(q, 'is_water'))
var is_water = utils.getQueryString(q, 'is_water');
console.log(is_water);
console.log("index 生命周期 onload 參數(shù) access_token=" + utils.getQueryString(q, 'access_token'))
var access_token = utils.getQueryString(q, 'access_token');
console.log(access_token);
}
}
- utils.js截取方法如下:
let getQueryString = function (url, name) {
var reg = new RegExp('(^|&|/?)' + name + '=([^&|/?]*)(&|/?|$)', 'i')
var r = url.substr(1).match(reg)
if (r != null) {
return r[2]
}
return null;
}
module.exports = {
getQueryString: getQueryString
}
- 通過(guò)上面方法即可獲取普通二維碼所攜帶的參數(shù)進(jìn)行判斷了