1. 程式人生 > >ios 呼叫微信JSSDK 簽名失敗解決方法

ios 呼叫微信JSSDK 簽名失敗解決方法

用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],
    ···
}