vue 使用微信JSSDK,在IOS端會授權出錯


原因:

vue-router切換的時候操作的都是瀏覽器的歷史記錄,iOS會把第一次剛進入時的URL作為真實URL,安卓會把當前URL作為真實URL。

所以導致后端在配置好的授權參數獲得的config參數和微信sdk獲取的參數是不一樣的。

 

解決方案: 修改路由  index.js

{
path: '/namecheck',
component: NameCheck,
beforeEnter:(to,from,next)=>{
var u = navigator.userAgent;
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios終端
// XXX: 修復iOS版微信HTML5 History兼容性問題
if (isiOS && to.path !== location.pathname) {
// 此處不可使用location.replace
location.assign(to.fullPath)
} else {
next()
}
},
name: 'namecheck',
meta: {
requireAuth: true,
}
},


window.location.assign(url) : 加載 URL 指定的新的 HTML 文檔。 就相當於一個鏈接,跳轉到指定的url,當前頁面會轉為新頁面內容,可以點擊后退返回上一個頁面。
window.location.replace(url) : 通過加載 URL 指定的文檔來替換當前文檔 ,這個方法是替換當前窗口頁面,前后兩個頁面共用一個
窗口,所以是沒有后退返回上一頁的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM