收藏
回答

使用这个wx.scanQRCode出现问题?

开发公众号页面 使用wx.scanQRCode 这个时候 设置needResult: 0时候 打开相机后不进行其他操作直接关闭相机页面就会跳转到了/undefined页面。能帮看看是不是下面代码写的有问题

//代码
import { getWXJSSDK } from '@/request'
import { Dialog } from 'vant'


export function useJSSDK() {
  function wxjssdkFun(callback = () =>{}) {
    getWXJSSDK({url: window.location.href.split('#')[0]}).then(res => {
      let { appId, jsapi_ticket, nonceStr, signature, timestamp } = res.data
      wx.config({
        debug: false, // 开启调试模式,调用的所有 api 的返回值会在客户端 alert 出来,若要查看传入的参数,可以在 pc 端打开,参数信息会通过 log 打出,仅在 pc 端时才会打印。
        appId, // 必填,公众号的唯一标识
        timestamp, // 必填,生成签名的时间戳
        nonceStr, // 必填,生成签名的随机串
        signature,// 必填,签名
        jsApiList: ["scanQRCode"] // 必填,需要使用的 JS 接口列表
      });
      wx.ready(function(){
        callback()
      });
      wx.error(function(res){
        Dialog.alert({
          title: '温馨提示',
          message: '打开摄像头失败!'+res,
        }).then(() => {
        });
      });
    })
  }
  function scanQRCodeFun() {
    wxjssdkFun(() =>{
      wx.scanQRCode({
        needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
        scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
        success: function (res) {
          var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
          let dom = document.createElement('a');
          dom.setAttribute('href', result);
          document.body.appendChild(dom);
          dom.click();
        },
        error:function(res){
          Dialog.alert({
            title: '温馨提示',
            message: '!'+res,
          }).then(() => {
          });
          console.log('fail')
        }
      });
    })
  }
  return { wxjssdkFun,scanQRCodeFun }
}
回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容