问题描述
使用Vue开发的H5页面调用微信扫一扫,Android系统中能调起成功,iOS系统第一次进入页面调起失败,需手动刷新一次才能调起成功。
出现原因
Android系统中能调起成功说明整个调用逻辑没有问题,iOS系统中调起失败说明wx.config
里的验证信息出现了错误。
经排查,发现从某页跳转至扫码页是使用路由方式this.$router.push()
实现的页面跳转,在iOS版微信中,此跳转方式不会导致实际路径发生改变,也就是说虽然跳转到了扫码页面,但是在扫码页通过location.href
获取到的url还是上一级页面的,导致扫码页在进行微信验证时签名无效。
解决办法
进入扫码页时不要使用路由跳转,使用window.location.href
进行跳转,这样会刷新一下路径,再用location.href
获取的就是当前扫码页的url。
网友评论