注意:ios第一次進入頁面調取失敗的緣由主要在於傳入的path路徑ios
用路由守衛解決了問題,說白了就是每次切換頁面的時候都去從新configapi
可是由於安卓手機上沒有問題,我就區分了安卓和ios的寫法:bash
let u = navigator.userAgent, app = navigator.appVersion;
let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios終端
if (isIOS) {
// 全局路由守衛
router.beforeEach((to, from, next) => {
const data = {
url: encodeURIComponent((location.href.split('#')[0])),
appType: sessionStorage.getItem('appType')
}
const url = '/wx/getJsSdkPermission?' + qs.stringify(data); //獲取簽名
http.get({ url, data }, {
success: (data) => {
wx.config({
beta: true, // 必須這麼寫,不然wx.invoke調用形式的jsapi會有問題
debug: false, // 開啓調試模式,調用的全部api的返回值會在客戶端alert出來,若要查看傳入的參數,能夠在pc端打開,參數信息會經過log打出,僅在pc端時纔會打印。
appId: this,appId, // 必填,企業號的惟一標識,此處填寫企業號corpid
timestamp: data.timestamp, // 必填,生成簽名的時間戳
nonceStr: data.noncestr, // 必填,生成簽名的隨機串
signature: data.sign, // 必填,簽名,見附錄1
jsApiList: [
"checkJsApi",
"scanQRCode",
]// 必填,須要使用的JS接口列表,全部JS接口列表見附錄2
});
wx.ready(function (data) {
})
}
});
next() // 必須使用 next ,執行效果依賴 next 方法的調用參數
})
}
複製代碼
問題完美解決session