美文网首页
关于vue微信分享iOS和android的不同

关于vue微信分享iOS和android的不同

作者: 心如止水_1c5b | 来源:发表于2017-09-05 10:24 被阅读0次

Vue的路由默认的mode是hash,这个模式带来的bug不是一般的多,在hash模式下url地址会出现#,这个#号会使window.location.href()方法失效。并且ios微信支付的调起也会因为#的存在而导致jsap调起失败,但是Android并没有问题。因此mode的模式最好是history,这种模式下微信支付调起完全没问题。接下来就是微信分享的问题,在history模式下android还是能够正常分享,但是ios系统在这种模式下在微信浏览器下的url地址就是一开始进入页面的url,不会改变,无论路由如何的切换(android则不存在这种情况)。所以对于iPhone 需要获取用户进入页面的最初的url,并用这个url做签名。代码大致如下:

if (/iPhone|mac|iPod|iPad/i.test(navigator.userAgent)) {

var myurl= window.sessionStorage.url.split('#')[0];

} else {

var myurl = window.location.href.split('#')[0];

}

上面的代码做了机型的判断,若是iphone则会获取最初进入页面的url,window.sessionStorage.ur是我在最初页面的设置的值。myurl是要进行签名的参数。这是最近总结的坑,希望能对大家有帮助。

相关文章

网友评论

      本文标题:关于vue微信分享iOS和android的不同

      本文链接:https://www.haomeiwen.com/subject/zaqujxtx.html