在VUE项目中,微信IOS端无法响应路由改变时对地址的变化,所以每次注册只能使用最初的url地址。那么可以设置一个标记位,如果是IOS且首次注册成功就缓存该地址到localStorage,进行注册的时候就进行判定,如果signflag为真的话,就直接采用缓存的url地址,否者采用当前url地址
let signflag = false;
function getWxSign(jsApiList = []) {
let url = encodeURIComponent(window.location.href);
if (signflag) {
url = localStorage.getItem('initialUrl');
} else {
url = encodeURIComponent(window.location.href);
}
if (!signflag) {
wx.ready(function () {
if (!signflag && utils.isIOS()) {
signflag = true; // todo 取消注释
localStorage.setItem('initialUrl', url)
}
})
}
this.$ajax.postUrl(
this.$API.GETJSSDK(url),
{url},
res => {
const {result} = res;
const {appId, nonceStr, signature, timestamp} = result;
wx.config({
//debug: true,
appId,
timestamp,
nonceStr,
signature,
jsApiList: jsApiList
});
},
err => console.log(err), false
);
}
网友评论