login.vue

// 调用微信扫一扫
const getSDK = () => {
  const url = window.location.href // 获取当前页面地址
  getJsSdk(url).then(res => { // getJsSdk后端传回来的jssdk
    wx.config({
      debug: false,
      appId: res.data.appId,
      timestamp: res.data.timestamp,
      nonceStr: res.data.nonceStr,
      signature: res.data.signature,
      jsApiList: [ 'scanQRCode']
    })
    wx.ready(() => {
      wx.checkJsApi({
        jsApiList: [ 'scanQRCode'],
        success: function (res) {
          if (res.checkResult.scanQRCode === true) {
            wx.scanQRCode({
              needResult: 1,
              scanType: ['qrCode'],
              success: function (res) {
                // 使用 URL 对象解析 URL 字符串
                const urlObj = new URL(res.resultStr);
                const userId = urlObj.searchParams.get("userId");
                if(userId) {
                  getUser(userId) // 绑定用户信息并登录
                }
              },
              fail: function (res) {
                console.log('fail', res)
              }
            })
          } else {
            console.log('抱歉,当前用户端版本不支持扫一扫,请升级到最新版')
          }
        },
        fail: function (res) {
          console.log('fail', res)
        }
      })
    })
    //
    // wx.error((res) => {
    //   console.log('配置验证失败', res)
    // })
  })
}

JSSDK官网:概述 | 微信开放文档

2. scanQRCode:the permission value is offline verifying的报错

地址栏问题:push的跳转不能被写入ios微信浏览器的地址栏

解决方案:push跳转改为window.loaction.href跳转 ;window.loaction.href跳转才能改变地址栏的变化,才能签名成功

比如我的是要从start.vue跳到login.vue,并在login.vue进行扫一扫登录,那start.vue的页面跳转只能用location.href = '/login',用router.push就会报错(scanQRCode:the permission value is offline verifying)

Logo

一站式 AI 云服务平台

更多推荐