为什么在安卓中生效在IOS中失败?
appId: process.env.APPID, // 必填,公众号的唯一标识
timestamp: timestamp, // 必填,生成签名的时间戳
nonceStr: nonceStr, // 必填,生成签名的随机串nonceStr
signature: createSignature(timestamp, nonceStr), // 必填,签名
jsApiList: ['getLocation', 'scanQRCode', 'closeWindow'] // 必填,需要使用的JS接口列表
scanQRCodeView() {
var _this = this;
//扫描二维码点击,调用扫码
weChatReady().then(() => {
scanQRCode()
.then(res => {
console.log(res, "扫码结果&&&&&&&&&");
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中页面地址会始终为第一次进入的链接地址。
而这里的授权会有一个获取openId的过程,所以就会有在iOS中授权失败的问题。
解决思路: