vue history模式 ios微信分享坑

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就会失效!