安卓及开发者工具都没有问题,只有IOS由此问题,查了很多资料,没能解决,进入页面wx.config是成功的,刷新后URL跟刷新前也是一致的,没有所谓的变化
mounted() {
const that = this
that.onConfig()
},
methods: {
onConfig() {
const that = this
const url = window.location.href.split('#')[0]
that.$axios
.post('/system/wechat/getSignature', {
appId: that.$config.appId,
url,
})
.then((res) => {
const result = res.data
wx.config({
appId: result.appId,
nonceStr: result.nonceStr,
signature: result.signature,
timestamp: result.timestamp,
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
jsApiList: [
// 必填,需要使用的JS接口列表
'scanQRCode',
],
})
})
wx.ready(() => {
Notify({ type: 'success', message: '微信成功' })
})
wx.error(function (res) {
Notify({ type: 'danger', message: res })
})
},
scanQRcode() {
Notify({ type: 'success', message: '点击成功' })
setTimeout(function () {
wx.scanQRCode({
needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
scanType: ['qrCode', 'barCode'], // 可以指定扫二维码还是一维码,默认二者都有
success: function (res) {
const result = res.resultStr // 当needResult 为 1 时,扫码返回的结果
Notify({ type: 'success', message: result })
},
error: (err) => {
Notify({ type: 'danger', message: err })
},
})
}, 500)
},
}
出现这个问题需要把wx.scanQRCode()写在wx.ready(function () {}里即可解决
苹果15也不能使用wx.scanQRCode()扫一扫