解决微信H5自定义分享在IOS下失效的问题

最近做微信分享的时候遇到的一个问题,安卓分享无问题,但是ios报错invalid signature ,必须得刷新一次,才可以正常分享,然后网上查了查相关问题,试了很多办法才发现问题所在。

主要原因:

IOS:每次切换路由,SPA的url是不会变的,发起签名请求的url参数必须是当前页面的url(就是最初进入页面时的url)

Android:每次切换路由,SPA的url是会变的,发起签名请求的url参数必须是当前页面的url(不是最初进入页面时的)

let rs = await this.$post('game/wxpay/share', {
          gameid: this.GAMEID,
          url: window.location.href.split('#')[0],
          openid: localStorage.getItem('openid')
        })
        if (rs.code === '0') {

          // if (ua.indexOf('micromessenger') > 0) {//微信环境
          let wxTitle = rs.title;// 分享标题
          let wxDesc = rs.desc;// 分享描述
          let wxImgUrl = rs.imgurl;// 分享图标
          let wxShareUrl = rs.redirect_url;// 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
          let decodeLink = decodeURIComponent(rs.redirect_url);

window.location.href.split('#')[0],

传入的url截取一下,就完美解决了。

你可能感兴趣的:(解决微信H5自定义分享在IOS下失效的问题)