uniapp ios端扫码跳转APP卡死解决方案

问题描述

在苹果真机运行下进行扫码获取结果进行跳转,原先是不会报错的,现在我也碰上了。直接上代码

				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) => {
						// 需要注意的是小程序扫码不需要申请相机权限
					}
				});
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值