问题描述
在苹果真机运行下进行扫码获取结果进行跳转,原先是不会报错的,现在我也碰上了。直接上代码
uni.scanCode({
success:async (res) => {
this.scanresult = res.result;
console.log(this.scanresult);
uni.navigateTo({
url: '../order/order/scanGrabs?data=' + encodeURIComponent(JSON.stringify(this.scanresult))
});
},
fail: (err) => {
// 需要注意的是小程序扫码不需要申请相机权限
}
});
当上面代码执行后,页面没有任何相应,而且APP也操作不了,看下控制台从当前页面和被跳转的界面代码都顺利执行完了,而APP直接卡死有的甚至可能APP卡退重启了。
解决方案
在跳转的程序使用nextTick+延时500毫秒可以解决,测试发现只使用nextTick也可以解决,不过为了保险,加个双重吧
uni.scanCode({
success:async (res) => {
this.scanresult = res.result;
console.log(this.scanresult);
await this.$nextTick();
setTimeout(() => {
uni.navigateTo({
url: '../order/order/scanGrabs?data=' + encodeURIComponent(JSON.stringify(this.scanresult))
});
},800)
},
fail: (err) => {
// 需要注意的是小程序扫码不需要申请相机权限
}
});