在vue项目中,调用微信扫一扫功能,在安卓系统下完全正常,ios系统下却报错'invalid signature'的错误,这可能令许多小伙伴困惑,经过查询大量博客相关资料,才找到了解决的方法。
原因:由于在ios和android中,location.href在spa页面的机制不同(不同在于ios是只要不刷新页面,href就不会改变,在vue项目中就会出现类型的问题),所以我们需要借助路由钩子函数,手动改变其页面的url地址,这样ios系统的手机才能正常调起微信扫一扫。
beforeRouteEnter(to, from ,next) {
if(to.path != location.pathname) {
location.assign(to.fullPath);
} else {
next();
}
}
这样就可以很完美的解决了这个问题了,希望能够对入坑的小伙伴有帮助~~