调用wx.scanQRCode接口时,发现needResult为1时, 回调不执行问题,经过反复测试得到结论如下
1、该BUG在安卓下不存在,安卓机型needResult为1或0都是正常的
2、在IOS iphone 6S PLUS、iphone 8 PLUS、iphone XR、iphone XS MAX下,当打开相机的一瞬间如果扫码区域正对二维码,即可实现needResult为0的直接返回结果效果,如打开的时候是对着别的地方,然后移动到二维码上的话,则只会扫码并关闭页面,无任何返回(尝试写error方法也无效),当needResult为1正常
3、scanType为qrCode或barCode或两者都存在皆可复现
以上结论均使用官方文档中提供的demohttp://demo.open.weixin.qq.com/jssdk测试
我跟你问题一样 机型iphone7
解决方法:
回调中添加定时器 定时器延迟一秒以上即可解决
<script>
function aaa(){
alert("打开扫一扫")
wx.scanQRCode({
needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
success: function (res) {
aaaa();//没效果
setTimeout(function(){
alert(JSON.stringify(res)) //执行
},1000)
// var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
// alert(result)
}
});
}
function aaaa(){
alert(852) //没执行
}
</script>
我也遇到这问题,iphonexr和6Splus都有这问题
你好,可以参考:微信 JS SDK 扫码二维码 api scanQRCode, 不会回调 suc? binnie 的评论 - 微信开放社区 https://developers.weixin.qq.com/community/develop/doc/000e640b670ef09b8419030fa5b400?jumpto=reply&commentid=000426ef3e4d38061a2939d42518&parent_commentid=0006a0a80a08301b8c196149f5b8