由于ios微信保留首次进入的url,导致获取微信数字签名失败。

经过搜索资料,通过把首次进入的url保存在cookies里,每次判断如果是ios就从cookies取出url,如果是android就直接用window.location.href获取当前url。以为终于解决了这个问题。最后发现并不是所有ios都行,部分苹果机型比如6plus,仍然报签名失败,这部分机型需要跟安卓一样获取当前url。

经过多方面考量,最终找到如下方式。

在每次路由跳转时,拦截,判断如果是ios,就用location.assign方法跳转真实路径,解决掉ios只保留首次url的问题。

欢迎各位小伙伴,交流一下自己是怎么解决这个问题的。

其中process.env.BASE_URL为根路径,全局变量

const to_fullPath = process.env.BASE_URL + to.fullPath.replace('/', '')
const to_path = process.env.BASE_URL + to.path.replace('/', '')
if (isIos() === true && to_path !== global.location.pathname) {  // 判断是否是ios
  location.assign(to_fullPath)
}
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐