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)进行更多问题的探讨,你的问题将是我们大家共同进步的关键。