uniapp掃小程序普通二維碼鏈接進(jìn)入小程序,獲取二維碼鏈接的參數(shù)方法不一致問(wèn)題
微信小程序獲取參數(shù)方法?參考文檔:掃普通鏈接二維碼打開(kāi)小程序 | 微信開(kāi)放文檔
二維碼內(nèi)容獲取
在小程序后臺(tái)配置二維碼跳轉(zhuǎn)小程序規(guī)則之后即可使用微信(6.5.6及其以上客戶(hù)端版本)掃碼打開(kāi)小程序粗仓。
二維碼鏈接內(nèi)容會(huì)以參數(shù)?q?的形式帶給頁(yè)面园蝠,在onLoad事件中提取?q?參數(shù)并自行?decodeURIComponent?一次(對(duì)于小游戲可使用 wx.getEnterOptionsSync 接口獲壬玫ⅰ),即可獲取原二維碼的完整內(nèi)容。同時(shí)會(huì)附加一個(gè)參數(shù) scancode_time(UNIX 時(shí)間戳怨酝,單位秒)俭令,表示用戶(hù)掃碼的時(shí)間。
Page({onLoad(query){constq=decodeURIComponent(query.q)// 獲取到二維碼原始鏈接內(nèi)容constscancode_time=parseInt(query.scancode_time)// 獲取用戶(hù)掃碼時(shí)間 UNIX 時(shí)間戳}})
支付寶小程序獲取參數(shù)方法 參考文檔:關(guān)聯(lián)普通二維碼 | 小程序
獲取二維碼碼值請(qǐng)?jiān)谛〕绦?app.js 文件的 app() 的 onLaunch() 方法中使用 options.query 獲取硝全,代碼示例如下:
說(shuō)明:代碼只能獲取二維碼碼值栖雾,自定義參數(shù)值請(qǐng)自行獲取。
onLaunch(options){my.alert({title:'app onLaunch',content:JSON.stringify(options),success: (res)=>{//成功處理代碼段? ? ? },? ? });//獲取關(guān)聯(lián)普通二維碼的碼值伟众,放到全局變量qrCode中if(options.query&&options.query.qrCode) {this.qrCode=options.query.qrCode;? ? }? }
參數(shù)名描述
path當(dāng)前路徑析藕。若沒(méi)有填寫(xiě)目標(biāo)頁(yè)面,那么當(dāng)前路徑為首頁(yè)(如下圖)凳厢;若填寫(xiě)則返回目標(biāo)頁(yè)面的路徑账胧。
qrCode二維碼碼值。
發(fā)布
測(cè)試完成后開(kāi)發(fā)者可將二維碼跳轉(zhuǎn)規(guī)則發(fā)布上線(xiàn)先紫,發(fā)布后掃描所有符合匹配規(guī)則的二維碼治泥,將跳轉(zhuǎn)至指定的小程序頁(yè)面。
IDE 調(diào)試啟動(dòng)參數(shù)
比如普通二維碼碼值是 http://商戶(hù)網(wǎng)站域名?bb=cc&dd=ff
對(duì)其做 URLENCODE 遮精,得到 http%3a%2f%2f%e5%95%86%e6%88%b7%e7%bd%91%e7%ab%99%e5%9f%9f%e5%90%8d%3fbb%3dcc%26dd%3dff车摄。
打開(kāi) IDE 頂部功能區(qū)中的添加編譯模式,選擇自定義編譯仑鸥。
在之前得到的參數(shù)前面加上 “qrCode=” 后填入啟動(dòng)參數(shù)并確認(rèn)吮播。
在模擬器中進(jìn)行調(diào)試。
注意:支付寶小程序的二維碼鏈接只能通過(guò)app.vue頁(yè)面里的onLaunch中以參數(shù)options.query.qrCode帶進(jìn)來(lái)眼俊,不能直接在頁(yè)面onLoad里獲取
實(shí)際項(xiàng)目運(yùn)用
if (query.q) { // 掃碼進(jìn)入微信小程序,微信小程序二維碼鏈接是以參數(shù)q傳進(jìn)來(lái)的
let url = decodeURIComponent(query.q) //解碼url
this.serverOrderId = this.$getParams(url, 'serverOrderId')
this.txnType = this.$getParams(url, 'txnType')
} else if (query.serverOrderId) {//正常頁(yè)面跳轉(zhuǎn)
this.serverOrderId = query.serverOrderId
this.query = query
this.txnType = query.txnType
this.inviteRefundUserId = query.inviteRefundUserId //收銀員邀請(qǐng)管理員退款的收銀員userid
} else { //掃碼進(jìn)入支付寶小程序,// 支付寶小程序的二維碼鏈接只能通過(guò)app.vue頁(yè)面里的onLaunch中以參數(shù)options.query.qrCode帶進(jìn)來(lái)
this.txnType = this.$getParams(this.$store.state.orderDetail_qrcode, 'txnType')
this.serverOrderId = this.$getParams(this.$store.state.orderDetail_qrcode, 'serverOrderId')
}