使用普通二維碼打開小程序的場景,主要是為了記錄是用戶都是掃描哪一個二維碼進(jìn)入的仑荐。
1. 配置掃普通鏈接二維碼打開小程序
打開微信公眾平臺 > 開發(fā)管理 > 開發(fā)設(shè)置 > 添加普通二維碼地址
image.png
2. 二維碼跳轉(zhuǎn)規(guī)則配置
詳細(xì)內(nèi)容參照官方文檔
3. 二維碼內(nèi)容獲饶小(重點)
下面是官方文檔中給出的代碼示例
Page({
onLoad(query) {
const q = decodeURIComponent(query.q) // 獲取到二維碼原始鏈接內(nèi)容
const scancode_time = parseInt(query.scancode_time) // 獲取用戶掃碼時間 UNIX 時間戳
}
})
在掃碼跳轉(zhuǎn)小程序成功后曼尊,onLoad
函數(shù)中可以接收到二維碼中的內(nèi)容
例如,二維碼中內(nèi)容為:https://www.qq.com/a/?id=123
則在小程序中的query.q
的值為:'https%3A%2F%2Fwww.qq.com%2Fa%2F%3Fid%3D123'
使用decodeURIComponent
解碼后得到原來的數(shù)據(jù)均牢。
但是
在測試中發(fā)現(xiàn),首次掃碼打開小程序后才睹,query
的值為undefined
徘跪,當(dāng)切換小程序到后臺之后重新掃碼,之后的query
的值均是二維碼中的內(nèi)容琅攘。
解決方法
將const q = decodeURIComponent(query.q)
修改成以下內(nèi)容垮庐,此時options.q
的值就是為二維碼中的內(nèi)容
var pages = getCurrentPages();
var page = pages[pages.length - 1];
const options = page.options;
完整代碼
Page({
onLoad(query) {
var pages = getCurrentPages();
var page = pages[pages.length - 1];
const options = page.options; // 獲取到二維碼原始鏈接內(nèi)容
const scancode_time = parseInt(options.scancode_time) // 獲取用戶掃碼時間 UNIX 時間戳
}
})