vue项目微信H5页面,解决IOS端第一次调取微信扫一扫失败,需要需要刷新页面后才能成功的问题

在App.vue文件中获取到页面到URL (微信调取扫一扫会用到)

window.localStorage.setItem('scanUrl',location.href.split('#')[0])

可以用缓存记住这个URL在调取微信扫一扫到时候再取出来使用即获取签名等信息的时候

async getSign(){
      //  解决IOS端第一次调取微信扫一扫失败,需要刷新当前页面后才能成功端问题
      let url =  /(Android)/i.test(navigator.userAgent) ? location.href.split('#')[0] : window.localStorage.getItem('scanUrl');
      try {
        let res = await this.$http.post('pay/signJsApi',{
          url: url
        })
        if(res.data.result_code==0){
          let signObj = res.data.data
          wx.config({
            debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
            appId: signObj.appId, // 必填,公众号的唯一标识
            timestamp: signObj.timestamp, // 必填,生成签名的时间戳
            nonceStr: signObj.nonceStr, // 必填,生成签名的随机串
            signature: signObj.signature,// 必填,签名
            jsApiList: ['scanQRCode'] // 必填,需要使用的JS接口列表
          });
        } else {
          alert(JSON.stringify(res.data))
        }
      }catch(err){
        alert(JSON.stringify(err))
      }
    },

PS:欢迎加入vue技术交流群(864583465)进行更多问题的探讨,你的问题将是我们大家共同进步的关键。

GitHub 加速计划 / vu / vue
207.54 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
73486cb5 * chore: fix link broken Signed-off-by: snoppy <michaleli@foxmail.com> * Update packages/template-compiler/README.md [skip ci] --------- Signed-off-by: snoppy <michaleli@foxmail.com> Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 4 个月前
e428d891 Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐