緣由是使用了vue-router裏面的history模式,這種模式下的url是不斷變化的,而jssdk的在每一次url變化的時候都須要從新config,致使每個跳轉一個頁面都須要從新去進行config,vue
而使用vue-router的默認模式,只是hash部分(#後面的內容)變化,這種變化是不須要從新進行config的vue-router
使用默認的vue-router的hash mode就能夠,在根組件(通常是app.vue)裏面配置config信息便可,代碼以下api
const wx = require('weixin-js-sdk') // 配置微信 config信息 let data = { noncestr: 'Wm3WZYTPz0wzccnWsss', timestamp: +new Date(), url: window.location.href.split('#')[0], jsApiList: ['chooseImage', 'startRecord', 'playVoice', 'stopRecord', 'downloadVoice', 'uploadVoice', 'stopVoice'] } // m6Get 是我本身封裝的fetch方法 // 從後臺獲取appid和對應的signature m6Get('getWechatSu', data).then((res) => { wx.config({ debug: false, // 開啓調試模式,調用的全部api的返回值會在客戶端alert出來,若要查看傳入的參數,能夠在pc端打開,參數信息會經過log打出,僅在pc端時纔會打印。 appId: res.data.appid, // 必填,公衆號的惟一標識 timestamp: data.timestamp, // 必填,生成簽名的時間戳 nonceStr: data.noncestr, // 必填,生成簽名的隨機串 signature: res.data.signature, // 必填,簽名,見附錄1 jsApiList: data.jsApiList // 必填,須要使用的JS接口列表,全部JS接口列表見附錄2 }) })
以後其餘頁面不用再進行config配置了,能夠直接使用 :)微信