收藏
回答

微信公众号网页开发:苹果机调用scanQRCode接口后不执行回调函数

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug scanQRCode 客户端 7.0.5 jweixin-1.4.0.js

- 当前 Bug 的表现(可附上截图)


iphone8p  微信版本7.0.5:进入网页,然后点击“扫一扫”,然后对着二维码扫描,scanQRCode的回调函数不执行,直接跳到含有“扫一扫”的首页,

如果在跳到首页1s左右内再次点击“扫一扫”扫描二维码,可以弹出来我想要的内容 ,但是必须连续点击。如果 第一次和第二次点击扫一扫间隔时间过长,扫码以后就会直接调到首页


- 预期表现


- 复现路径


- 提供一个最简复现 Demo


<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <!-- ↓淘宝metal移动端 --> <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no,viewport-fit=cover"> <meta name="format-detection" content="telephone=no"> <meta name="wap-font-scale" content="no"> <meta name="aplus-touch" content="1"> <meta name="aplus-terminal" content="1"> <meta name="aplus-waiting" content="MAN"> <meta name="do-rem-meta-change" content="false"> <!-- ↑淘宝metal移动端 --> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <script src="http://res.wx.qq.com/open/js/jweixin-1.4.0.js"></script> </head> <body> <button id="scanQRCode" >扫一扫</button> <script type="text/javascript"> $(function(){ var url = location.href; $.ajax({ url: "http://139.224.31.38:8322/api/WeChatOpenId/WXScanJSCodeSignApi", type: "post", data:{"url":url}, success: function (res) { // var params = JSON.parse(data); /*配置 wx.config 参数*/ wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: "wx20b2963badf6a8e0", // 必填,公众号的唯一标识 timestamp: res.Data2.timestamp, // 必填,生成签名的时间戳 nonceStr: res.Data2.noncestr,// 必填,生成签名的随机串 signature: res.Data, // 必填,签名 jsApiList: [ 'checkJsApi', 'scanQRCode' ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); } }); //二、调用微信扫一扫 wx.ready(function(){ wx.checkJsApi({ //判断当前客户端版本是否支持指定JS接口 jsApiList: [//需要检测的JS接口列表,所有JS接口列表见附录2, 'scanQRCode' ], success: function (res) {// 以键值对的形式返回,可用true,不可用false。如:{"checkResult":{"scanQRCode":true},"errMsg":"checkJsApi:ok"} if(res.checkResult.scanQRCode != true){ alert('抱歉,当前客户端版本不支持扫一扫'); }else { alert("成功进入"); } // console.log("=============") // console.log(res) // console.log("=============") }, fail: function (res) { //检测getNetworkType该功能失败时处理 alert('checkJsApi error'); } }); }); /*处理失败验证*/ wx.error(function (res) { alert("share error: " + res.errMsg); }); $(document).on('click','#scanQRCode',function(){ wx.scanQRCode({ needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果, scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有 success: function (res) { sessionStorage.setItem() window.location.href = "index.html"; alert(res.resultStr); //扫到的内容 // scanSuc(res); // 扫描成功的回调函数 }, error: function(res){ if(res.errMsg.indexOf('function_not_exist') > 0){ alert('版本过低请升级'); } } }); }); }); </script> </body>
回答关注问题邀请回答
收藏

2 个回答

  • 2019-11-28

    这个问题有人知道怎么解决吗 急

    2019-11-28
    有用
    回复 3
    • piao漂漂漂
      piao漂漂漂
      2019-12-03
      你解决没呢?
      2019-12-03
      回复
    • 2019-12-05回复piao漂漂漂
      setTimeout再去执行。这是官方给我的回复。具体没说在哪执行。
      2019-12-05
      回复
    • 未来可期
      未来可期
      2020-08-25
      我也遇到这样的问题 楼主解决了吗??
      2020-08-25
      回复
  • 灵芝
    灵芝
    2019-07-25

    你好,请勿重复发帖,此重复帖隐藏,感谢配合

    2019-07-25
    有用
    回复 3
    • 2019-11-28
      能解决下问题不
      2019-11-28
      回复
    • 灵芝
      灵芝
      2019-11-28回复
      若还有问题,请单独发帖提问
      2019-11-28
      回复
    • 未来可期
      未来可期
      2020-08-25
      我也是同样的问题  官方对此bug 都无能为力吗????
      2020-08-25
      回复
登录 后发表内容