1. 程式人生 > 其它 >企業微信和微信公眾號獲取wx.config的安卓和ios的區別----踩坑

企業微信和微信公眾號獲取wx.config的安卓和ios的區別----踩坑

配置wx.config流程:

微信公眾號中獲取簽名需要訪問的前端的頁面的uri給伺服器端獲取,服務端獲取公眾號唯一標識、簽名時間戳、簽名等資訊

程式碼如下:

 1             let url =  ''
 2             var ua= window.navigator.userAgent.toLowerCase();
 3             //企業微信客戶端
 4             if( (ua.match(/MicroMessenger/i) == 'micromessenger') && (ua.match(/wxwork/i) == 'wxwork') ){
5 //企業微信不管是安卓和ios都獲取每個頁面的url 6 url = window.location.href.split("#")[0] 7 //微信客戶端 8 }else if( ua.match(/micromessenger/i) == 'micromessenger' ){ 9 //1,如果是安卓獲取每個頁面的url ,2,如果是ios則獲取第一次進入應用的頁面 10 url = /(Android)/i.test(navigator.userAgent) ? location.href.split('#')[0] : window.localStorage.getItem('scanUrl');
11 } 12 this.$http.getWXconfigInfo({url:url}).then( res => { 13 wx.config({ 14 beta: true,// 必須這麼寫,否則wx.invoke呼叫形式的jsapi會有問題 15 debug: false, 16 appId: res.appid, // 必填,公眾號的唯一標識 17 timestamp: res.timestamp, //
必填,生成簽名的時間戳 18 nonceStr: res.noncestr, // 必填,生成簽名的隨機串 19 signature: res.signature, // 必填,簽名 20 jsApiList: [ 21 "scanQRCode", 22 "checkJsApi", 23 "chooseImage", 24 "getLocation", 25 "uploadImage", 26 "hideAllNonBaseMenuItem", 27 "translateVoice", 28 'startRecord', 29 'stopRecord', 30 'onVoiceRecordEnd', 31 'playVoice', 32 'pauseVoice', 33 'stopVoice', 34 'onVoicePlayEnd', 35 'uploadVoice', 36 'downloadVoice' 37 ] //獲取許可權的列表 38 }); 39 wx.error(function(res) { 40 //會彈出視窗哪裡錯誤,然後根據微信文件查詢即可。 41 //alert("出錯了:" + JSON.stringify(res)); 42 }); 43 })

在程式碼第10行的最後獲取快取的url從App.vue檔案中獲取,記錄第一次進入應用的url

將這個程式碼寫在初始化進入頁面的方法中,vue的話寫在 create 或者mounted 中

window.localStorage.setItem('scanUrl',location.href.split('#')[0])