小程序
小游戏
企业微信
微信支付
扫描小程序码分享
- 当前 Bug 的表现(可附上截图)
在页面onShow中或者wx.onAppShow中调用NFC会一直死循环地执行,这是怎么回事?难道判断NFC状态是跳到其他软件去判断的吗
- 预期表现
- 复现路径
- 提供一个最简复现 Demo
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
确实会出现死循环 回调多次的情况
目前的解决方法是设置防抖。
我是用taro, 在这个生命周期里 加个定时器,销毁时清除定时器
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
机型:任何的安卓手机都能复现
onShow: function() {
wx.getHCEState({
success(res) {
console.log("NFC状态=" + res.errCode);
if (res.errCode == "0") {
wx.startHCE({
aid_list: ['F222222222'],
console.log("NFC开启成功");
},
fail(err) {
console.log("NFC开启失败=" + JSON.stringify(err));
}
})
} else {
console.log("获取NFC状态失败=" + JSON.stringify(err));
});
按照上面的要求一一补全信息哈,thanks
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
确实会出现死循环 回调多次的情况
目前的解决方法是设置防抖。
我是用taro, 在这个生命周期里 加个定时器,销毁时清除定时器
你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
机型:任何的安卓手机都能复现
onShow: function() {
wx.getHCEState({
success(res) {
console.log("NFC状态=" + res.errCode);
if (res.errCode == "0") {
wx.startHCE({
aid_list: ['F222222222'],
success(res) {
console.log("NFC开启成功");
},
fail(err) {
console.log("NFC开启失败=" + JSON.stringify(err));
}
})
} else {
}
},
fail(err) {
console.log("获取NFC状态失败=" + JSON.stringify(err));
}
});
}
按照上面的要求一一补全信息哈,thanks
场景:授权后=》人脸识别
1.从主小程序=》官方小程序授权,授权成功返回设置onAppShow
wx.onAppShow(({ referrerInfo }) => {
console.log(referrerInfo)
if(referrerInfo && referrerInfo.appId) {
let { appId, extraData } = referrerInfo;
if(appId === "wx308bd2aeb83d3345") {
self.verifyInit(extraData.code.auth_code)
}
}
})
2. verifyInit(code) {
wx.onAppShow(null);
let { name, idcard, realFlag} = this.data;
http('/z/wx/machineBindCheck', {
cardNo: idcard, staffName: name, code
},'POST').then(({ msg, obj}) => {
let { certifyId } = obj;
wx.startFacialRecognitionVerify({
name: name,
idCardNumber: idcard,
success({ verifyResult }) {
http("/z/wx/identityCheck",{certifyId, verifyResult, realMode: 1}, "POST").then(({success}) => {
success&&wx.navigateTo({ url: realFlag===3?'/pages/identify/success':'/pages/identify/phone' })
})
},
fail(res) {
console.log(res)
}
})
})
}
3.wx.startFacialRecognitionVerify再次跳出小程序返回后referrerInfo跟前一次的数据一模一样,导致重复触发onAppShow里的逻辑。
这种逻辑bug任何机型都能复现,根本原因就是referrerInfo不准确根本不能用来做判定依据。
垃圾小程序毁我青春!