vue移动端扫一扫(history模式下)
2019-06-27 本文已影响0人
一条小团团ovo的就很棒
-
出现的问题:ios会有bug
-
原因:ios上history模式下的url不会刷新,一直是刚进入移动端的那个url
-
解决方法:
1.如果是刚进入移动端的页面就调用扫一扫,传参的url是正确的
2.如果跳转到下一个页面才进行扫一扫,url就不正确
(1)方法一:使用window.location.href进行跳转,ios上的url就会刷新
(2)方法二:正在寻找
beginScan() {
let _this = this;
let data={};
let url='';
url=window.location.href
data={
url:url.split("#")[0]
}
getWXconfig(data).then(res => {
let Data = res.data;
wx.config({
debug: false, // 开启调试模式,开发时可以开启
appId: Data.appId, // 必填,公众号的唯一标识 由接口返回
timestamp: Data.timestamp, // 必填,生成签名的时间戳 由接口返回
nonceStr: Data.nonceStr, // 必填,生成签名的随机串 由接口返回
signature: Data.signature, // 必填,签名 由接口返回
jsApiList: ["checkJsApi", "scanQRCode"] // 此处填你所用到的方法
});
});
wx.error(function(res) {
Toast.fail("配置验证失败" + res.errMsg);
});
wx.ready(function() {
wx.checkJsApi({
jsApiList: ["scanQRCode"],
success: function(res) {
// 点击按钮扫描二维码
if (res.checkResult.scanQRCode === true) {
wx.scanQRCode({
needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
scanType: ["qrCode"], // 可以指定扫二维码还是一维码,默认二者都有
success: function(res) {
let url = res.resultStr;
//截取返回的url的最后一个/后面的值
if (url != null && url != "") {
let cutUrl = url.split("/");
_this.book_no = cutUrl[cutUrl.length - 1];
}
}
});
} else {
Toast.fail("抱歉,当前客户端版本不支持扫一扫");
}
}
});
});
},