请教:代码如下,通过扫码跳转到这一页,但得不到传过来的值,找不到原因。
onLoad: function (options) {
var id='';
if (this.options.q) {
let scan_url = decodeURIComponent(this.options.q); //获取二维码的字符串
var id = scan_url.match(/\d+/).trim(); //截取以上字符串的数字部分,即id
this.setData({
ccbh: id
})
}
console.log(this.options.q);
},
提示:undefined
另外,如何真机测试扫码跳转到小程序?怎么查看扫码传过来的参数?
谢谢!
小程序二维码传值有2种方式,取值也有2种方式,确认是否一致。
至于真机测试,有很多方法,比如直接看后台业务数据,或者小程序的远程日志功能都可以,也可以在小程序中打印日志,在手机开发者模式看。
多看文档,至少看3遍,你这个明显是看的少,没看懂就开始做。
不是this.options,直接options
感谢大神,我修改了 onLoad: function,重新发布,能得到扫码带回的参数,我对这个参数进行了判断,当返回的参数中的数字长度大于5时执行一个函数,else执行另一个函数,现在始终只执行else里的函数 this.checkScanGzh(id);。
我对console.log进行字符长度显示又正常 ,单独运行这个函数也正常,不知道问题出在哪里。
特请教!!
谢谢!!
if (this.options.q) {
let scan_url = decodeURIComponent(this.options.q); //获取二维码的字符串
var id = scan_url.match(/\d+/); //截取以上字符串的数字部分,即id
// var id='21061367 '
this.setData({
ccbh: id
})
if (ccbh.length >5) {
this.checkScanXLH(id);
} else {
this.checkScanGzh(id);
}
}
id为两种,一种就是5位,另一种大于5位。
if (options.q)