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

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

阅读 3.5k
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。 特地去翻了之前写的代码, 很久之前了写的乱记忆也乱, 大概思路是这样 希望能帮到你

推荐问题