vue spa页面在调用微信jssdk刷新才成功?
今在做调用微信扫一扫时,发现第一次进入页面调用不成功,刷新一下当前页面在调用竟然成功了!!!!
问题原因:项目使用的是vue-router 进行页面切换,都是操作浏览器历史记录,而在ios中浏览器切换路由时url不变,在安卓中路由变化url是变化的
所以当你从a页面切换到b页面时,此时ios记录的还是a页面,所以需要对iso和安卓分别做处理,方式如下
1 Router.beforeEach(function(to, from, next) { 2 // 记录进入app时的url 3 if (typeof window.entryUrl === 'undefined' || window.entryUrl === '') { 4 window.entryUrl = location.href.split('#')[0]; 5 } 6 }) 7 // 签名使用的url 8 let signLink = /(Android)/i.test(navigator.userAgent) ? location.href.split('#')[0] : window.entryUrl;