在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  HTML/ config:invalid signature在IOS中報錯,安卓成功

config:invalid signature在IOS中報錯,安卓成功

為什么在安卓中生效在IOS中失???

appId: process.env.APPID, // 必填,公眾號的唯一標(biāo)識
timestamp: timestamp, // 必填,生成簽名的時間戳
nonceStr: nonceStr, // 必填,生成簽名的隨機串nonceStr
signature: createSignature(timestamp, nonceStr), // 必填,簽名
jsApiList: ['getLocation', 'scanQRCode', 'closeWindow'] // 必填,需要使用的JS接口列表
scanQRCodeView() {
      var _this = this;
      //掃描二維碼點擊,調(diào)用掃碼
      weChatReady().then(() => {
        scanQRCode()
          .then(res => {
            console.log(res, "掃碼結(jié)果&&&&&&&&&");
            if (res.data.projectId && res.data.spaceId) {
              console.log("判斷成功");
              let samaoMatch = {
                projectId: res.data.projectId,
                spaceId: res.data.spaceId
              };
              console.log(res.data.projectId, "res.data.projectId");
              console.log(this, "UUUUUUUUUUUUUUUUUUUU");
              console.log(_this, "PPPPPPPPPPPPPPPPPPP");
              _this.$emit("scanMathc", samaoMatch);
            } else {
              Toast("無效二維碼");
              return; //都為空的話,是么都不做
            }
          })
          .catch(err => {
            Toast("掃碼失敗了");
            console.error(err);
          });
      });
回答
編輯回答
喜歡你

因為用的是vue單頁spa,在單頁spa方面vue的history在iOS中頁面地址會始終為第一次進入的鏈接地址。
而這里的授權(quán)會有一個獲取openId的過程,所以就會有在iOS中授權(quán)失敗的問題。
解決思路:

將授權(quán)頁的地址鏈接利用vuex保存下來,判斷機型,如果是iOS機型就將授權(quán)頁的鏈接參數(shù)發(fā)送給微信權(quán)限校驗接口,最后返回的結(jié)果是成功。
let url = /(Android)/i.test(navigator.userAgent) ? location.href.split('#')[0] : process.env.BASE_URL + process.env.AUTHO_URI + '?code=' + tools.getStorage('code') + '&state=' + encodeURIComponent(tools.getStorage('state'));
2018年7月26日 19:05