我在生成的小程序码携带了参数,并且在App.js的onshow调用了解析的函数
decodeURIComponent()并且获取到了参数。
第一步,如果是用户第一次扫带参数的二维码,程序打开进入了正常的App.js的onshow回调,就能读取并根据获取到的参数设置程序所用到的值,程序正常。
第二步,用户就把小程序就放在小程序任务栏列表中,用户再扫描不同参数的二维码,这时App.js onshow的回调就不生效了,这是为什么?不生效就导致没有执行参数的解析和赋值操作,所以程序读取到的还是之前的参数,新的参数就没有用到。这个问题有什么解决办法吗?
第三步,删除小程序任务栏中的程序,再去扫码,程序能够进入App.js onShow回调,能进入回调程序就能正常设置。这是不是BUG?
在onShow打个log看能否打出来?
也请提供下两个二维码,我看下能否重现
这是两个不同参数的二维码,如果有进onShow,推荐会显示号码的。你可以按照我步骤测试下。
推荐人哪里会显示号码的
想问下 扫码进入二级页面是APP.js先执行还是二级页面先执行,我看到的调试信息是二级页面先打印出信息了,是本来就是这种逻辑的么?
我这边看到query里都是有值的,推荐那个也正常填上。
对于后面一个问题,会先触发app.onShow
应该是微信的问题
只要进入小程序,app.js里的用onshow肯定会执行的,你认真检查是否在onshow方法里判断某些条件才会继续往下执行,建议onshow代码贴上来看看。
这里就是解析赋值的操作,没什么其他东西,我是怀疑任务栏的小程序再次进来不进入APP.js 的Onshow 回调
App({
onLaunch: function () {
console.log('App Launch')
},
onShow: function (options) {
const scene = decodeURIComponent(options.query.scene)
if (scene === 'undefined'){
this.globalData.scene.value = ""
}else{
this.globalData.scene.value = scene
}
},
});
scene === undefined,全等的话 undefied不要加引号。
undefined 不生效的 所以才加了引号
if ( scene === 'undefined' ){
console.log('aa')
this .globalData.scene.value = ""
} else {
console.log('bb')
this .globalData.scene.value = scene
}
看是否会输出,输出的话输出哪一个。
回复
第一次没有参数 是 aa
通过二维码进来了就是 bb
哈哈
已解决 是赋值问题,小程序没有问题。
请问你这个问题是如何解决的,我也遇到这样的问题了。