緣由:vue
vue-router切換的時候操做的都是瀏覽器的歷史記錄,iOS會把第一次剛進入時的URL做爲真實URL,安卓會把當前URL做爲真實URL。ios
因此致使後端在配置好的受權參數得到的config參數和微信sdk獲取的參數是不同的。vue-router
解決方案: 修改路由 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 指定的文檔來替換當前文檔 ,這個方法是替換當前窗口頁面,先後兩個頁面共用一個
窗口,因此是沒有後退返回上一頁的
瀏覽器