微信wx.scanQRCode如何处理扫描取消

来源【原创】 / 2057人浏览
时间:2021-10-31 08:56:34
0

业务场景说明,在企业微信端开发一款“核销工具”应用时,使用到了微信扫一扫功能,通过vue H5页面调起微信扫一扫,在实际开发过程中发现,返回按钮和左滑取消扫码时,不能返回到上一页的问题,在网上查阅了基本资料如下

onlyFromCamera Boolean 接是否只能从相机扫码,不允许从相册选择图片
scanType Array 接可以指定扫二维码还是条形码(一维码),默认二者都有。['qrCode','barCode',...]
success Function 接口调用成功的回调函数,返回内容详见返回参数说明。
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

没有cancle的事件监听,在这里通过complete监听事件来完成返回,具体代码如下

    // 微信扫一扫
     startscan() {
      let scanflag = false // 用于判断是业务结束还是人为取消标志变量
      const that = this
      wx.scanQRCode({
        desc: 'scanQRCode desc',
        needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
        scanType: ['qrCode'], // 可以指定扫二维码还是条形码(一维码),默认二者都有
        success: res => {
          scanflag = true
          console.log('A取消成功了', scanflag)
          // 你的...业务代码
        },
        error: res => {
          if (res.errMsg.indexOf('function_not_exist') > 0) {
            alert('版本过低请升级')
          }
        },
        complete: res => {
          console.log('B取消扫描了', scanflag)
          if (!scanflag) {
            this.$router.go(-1)
          }
        }
      })
    },


打赏