企業微信和微信公眾號獲取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])

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM