ios 呼叫微信JSSDK 簽名失敗解決方法
阿新 • • 發佈:2019-02-14
用SPA做微信h5,呼叫微信jssdk的頁面,安卓微信上木有問題,ios微信報當前url未註冊
經過除錯,是ios微信版本問題導致頁面跳轉url未變化,導致驗籤失敗
所以我們大致的思想就是:在ios微信環境中(判斷瀏覽器環境請參考我的另一篇文章–js判斷瀏覽器環境),如果跳轉頁面與當前頁面的url不一致,那麼就過載重新整理整個跳轉頁面
因為專案使用vue,所以我們使用vue-router的鉤子函式beforeRouterEnter()來做此操作
將鉤子函式寫入js模組,使用時候混入頁面vue例項選項即可
// mixins/assign.js
import { isIOSWeChat } from '../utils'
const location = global.location
export default {
beforeRouteEnter(to, from, next) {
// XXX: 修復iOS版微信HTML5 History相容性問題
if (isIOSWeChat() && to.path !== location.pathname) {
// 此處不可使用location.replace
location.assign(to.fullPath)
} else {
next()
}
},
}
然後在vue檔案中
import assign from 'mixins/assign.js'
export default {
···
mixins: [assign],
···
}