微信js-sdk config在安卓系统下正常,ios系统却报'invalid signature'

项目背景:Vue单页面 路由模式为hash 使用微信扫一扫

遇到问题:见标题

解决方法:在给后端传当前url获取微信config的时候,要去掉hash路由#后面的内容,所以取url的方法为location.href.split('#')[0]。

补充:由于在ios和android中,location.href在spa页面的机制不同(不同在于ios是只要不刷新页面,href就不会改变),所以你要对相应的系统做适配。

最终解决方案:

var u = navigator.userAgent;
    var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //g
    var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
    let url=''
    if (isAndroid) {
        url=location.href
    }
    if (isIOS) {
        url=location.href.split('#')[0]  //hash后面的部分如果带上ios中config会不对
    }

你可能感兴趣的:(微信js-sdk config在安卓系统下正常,ios系统却报'invalid signature')