vue history模式 ios微信分享坑
问题分析:因为苹果分享会是调取签名失败是因为:苹果在微信中浏览器机制和安卓不同,有IOS缓存问题,和IOS对单页面的优化问题,通俗点说安卓进行页面跳转分享时会刷新当前的url,而苹果不会,苹果是通过历史记录进来的,不会刷新url所以会导致签名失败
解决方法
beforeRouteEnter(to, from, next) {
// XXX: 修复iOS版微信HTML5 History兼容性问题
if (to.path !== location.pathname) {
// 此处不可使用location.replace
location.assign(to.fullPath)
} else {
next()
}
}
注意: 如果使用了location.assign()会加载新的文档。这样如果首页使用了keep-alive就会失效!