美文网首页
ios微信浏览器内vue项目url不改变

ios微信浏览器内vue项目url不改变

作者: 我才是大田田 | 来源:发表于2018-12-03 14:07 被阅读0次

项目是nuxt的,虽然vue-router的模式是history,但是在ios里有个问题:当路由变化时,微信浏览器的url不改变,导致从微信浏览器跳转到手机浏览器时,不能打开指定页面。

解决方案:在全局路由守卫后置钩子(afterEach)里,主动修改url

// plugin/route.js
export default ({ app }) => {
  app.router.afterEach((to, from) => {
    const u = navigator.userAgent.toLowerCase()
    if(u.indexOf("like mac os x") < 0 || u.match(/MicroMessenger/i) != 'micromessenger') return
    if (to.path !== global.location.pathname) {
      location.assign(to.fullPath)
    }
  })
}

之所以用全局后置钩子,但是有个页面用了组件内的前置钩子,二者有冲突,导致该页面打不开。
而全局后置钩子在路由守卫顺序中处于最后一个阶段,所以用起来没问题。

相关文章

网友评论

      本文标题:ios微信浏览器内vue项目url不改变

      本文链接:https://www.haomeiwen.com/subject/nixjfqtx.html