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

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是要进行签名的参数。这是最近总结的坑,希望能对大家有帮助。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,270评论 25 708
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,527评论 2 45
  • 工业减震垫使用范围越来越广,现在很多的工作领域其实都非常的重视减震效果,在工作的过程当中减震器材能够起到非常重要的...
    福州法拉第公司阅读 376评论 0 0
  • NGINX配置 @(nginx笔记)[nginx] 参考:http://www.oschina.net/trans...
    ahhhhhhhh阅读 1,009评论 0 4
  • 冷面桃花缘目录在此,请戳这里!想看蔷薇其他类型的小说,可以点击这里哟<<<蔷薇小说文集在此,请戳 上一章回顾 文丨...
    蔷薇下的阳光阅读 402评论 0 6