添加链接描述问题的原因:
IOS:微信IOS设备,每次切换路由,SPA的url是不会变的。发起签名请求的url参数必须是当前页的url,正因为SPA页面的url是不会变的,所以签名请求中的url是项目打开后第一个页面的url(进入页)。
Android:微信安卓设备,每次切换路由,SPA的url是会变的。发起签名请求的url参数必须是当前页的url,所以在微信安卓设备中签名请求中的url是当前页的url。
1,在created()函数中判断是否是ios设备
created(){
//判断是否是IOS设备
// IOS分享时的页面是首页,也就是进入页而不是当前页。所有可以采用刷新当前页,让进入页的链接改成当前页,再在页面卸载时删除缓存数据。
let agent = navigator.userAgent
let isIOS = !!agent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) // ios终端
if(isIOS && !sessionStorage.getItem('isShareState')){
sessionStorage.setItem('isShareState',true)
this.$router.go(0)
}
}
2,当我们离开这个页面时在删除缓存
destroyed(){
sessionStorage.removeItem('isShareState');
},