IOS微信分享问题(h5页面),签名报错invalid signature

网上方法差不多都看了,有个解决方法:window.location.href;确实有效,但是必须进入页面后再次刷新页面才能签名成功;
用时间戳也不能解决刷新问题,有大佬遇到过没

阅读 3.4k
2 个回答

在mian.js里面全局路由守卫后置钩子afterEach,主动修改url

window.router=router;
router.afterEach(to => {
  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下去修改 url 是没用的, 这个问题应该也只在单页应用下会出现。 我的做法是去到需要使用 jssdk 的页面我都是 window.location.href 跳过去的。 这样你在签名的时候 使用 window.location.href 就能签名成功了。 关键是你要使用 第一次进入页面是的url去签。 然后我就在 sessionStorage里面保存了一个变量, 看看是否 location.href这样去跳转过, 如果跳转过就用 router去跳, 没有就 location.href。 特地去翻了之前写的代码, 很久之前了写的乱记忆也乱, 大概思路是这样 希望能帮到你

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题