引入企業微信jssdk
今天寫這篇文章,主要是面向工作中在企業微信里引入jssdk的人。其實企業微信jssdk和微信公眾號的jssdk是差不多的,但這里面有很多需要注意的地方,也可以讓大家少走很多彎路。
調用普通接口:引入jweixin-module包,導入jweixin-module,進行config配置,使用。
調用需要agentConfig的接口:引入jweixin-module包,引入jwxwork sdk,進行config配置,進行agentConfig配置,使用。這里注意的是從企業微信3.0.24及以后版本(可通過企業微信UA判斷版本號),無須先調用wx.config,可直接wx.agentConfig.這里UA可以嘗試看看,如果不太想弄的話就先調用config就行。
1.jssdk包這里我推薦微信公眾號和企業微信可以一起使用的包`jweixin-module`,親測有效!
npm install jweixin-module --save
2.配置jssdk這里配置時注意jsApiList里要填對應的接口
initWxWorkJssdk: function(callback) { // jssdk配置 Vue.prototype.$api.yzhshopAdmin.commonA1 .jssdkConfig({ sign_url: window.location.href.split("#")[0], type: 1, shop_id: uni.getStorageSync("UserInfoData").shop_id || {}, }) .then((res) => { if (res.code === 200) { jweixin.config({ beta: true, // 必須這么寫,否則wx.invoke調用形式的jsapi會有問題 debug: false, // 開啟調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時才會打印。 appId: res.data.appId, // 必填,企業微信的corpID timestamp: res.data.timestamp, // 必填,生成簽名的時間戳 nonceStr: res.data.nonceStr, // 必填,生成簽名的隨機串 signature: res.data.signature, // 必填,簽名,見 附錄-JS-SDK使用權限簽名算法 jsApiList: [ "onMenuShareAppMessage", "updateAppMessageShareData", "selectExternalContact", "launchMiniprogram", "openUserProfile", "shareAppMessage", "onMenuShareAppMessage", "onMenuShareWechat", "shareWechatMessage", "scanQRCode", "openEnterpriseChat" ] }); // 配置完成,再執行分享等功能 if (callback) { callback(res.data); } } }) .catch((err) => {}); },
3.使用對應方法接口
scanQRCode: function(shop_id) { uni.showLoading({ title: '正在加載' }); console.log('更新了222', jweixin) this.initWxWorkJssdk(function() { jweixin.ready(function() { jweixin.scanQRCode({}); }); }); }
4.引入jwxwork sdk
這里的jwxwork sdk我建議先用官方的https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js
實在不行就這個包https://res.wx.qq.com/wwopen/js/jsapi/jweixin-1.0.0.js
或者有更好的npm包的朋友可以提供一下,官方的包好像沒有agentConfig。第二個包是社區提供的。
首先需要先成功調用上面的config接口,然后在wx.ready里繼續調用agentConfig
this.initWxWorkJssdk(function() { jweixin.ready(function() { Vue.prototype.$api.yzhshopAdmin.commonA1 .jssdkConfig({ sign_url: window.location.href.split("#")[0], type: 2, }) .then((res) => { if (res.code === 200) { wx.agentConfig({ debug: true, corpid: res.data.corpid, // 必填,企業微信的corpid,必須與當前登錄的企業一致 agentid: res.data.agentid, // 必填,企業微信的應用id (e.g. 1000247) timestamp: res.data.timestamp, // 必填,生成簽名的時間戳 nonceStr: res.data.nonceStr, // 必填,生成簽名的隨機串 signature: res.data.signature, // 必填,簽名,見附錄-JS-SDK使用權限簽名算法 jsApiList: [ "scanQRCode" ], //必填 success: function(res) { console.log(res, 'res') wx.scanQRCode({ desc: 'scanQRCode desc', needResult: 0, // 默認為0,掃描結果由企業微信處理,1則直接返回掃描結果, scanType: ["qrCode", "barCode"], // 可以指定掃二維碼還是條形碼(一維碼),默認二者都有 success: function(res) { // 回調 console.log(res, 'res') }, error: function(res) { console.log(res, 'res') if (res.errMsg.indexOf('function_not_exist') > 0) { alert('版本過低請升級') } } }); }, fail: function(res) { console.log(res); uni.showToast({ title: res, duration: 2000, }); if (res.errMsg.indexOf("function not exist") > -1) { alert("版本過低請升級"); } }, }); } }) .catch((err) => {}); }); }, shop_id);
最后注意事項
如果你用的是普通的jssdk接口,就只用引入jweixin-module這個包即可了,重點觀察接口下方有沒有提示需要使用agentConfig
而真的需要使用agentConfig接口的小伙伴,首先需要嘗試使用官方提供的jssdk,如果不行,導入文章中的第二包,最后不行聯系客服,整個過程參考官方的demo來做 <br/>
最后如果調用成功了,要同時測試安卓和蘋果。有任何問題也可以再下方留言,我看到會給你回復。感謝你看到最后,謝謝!
參考鏈接
企業微信jssdkdemo(官方) http://open.work.weixin.qq.com/api/jsapidemo
企業微信文檔 https://work.weixin.qq.com/api/doc/90000/90136/90512
企業微信巨坑:wx.agentConfig is not a function https://developers.weixin.qq.com/community/develop/article/doc/00022417118c78d4448af86625b413
企業微信客服二維碼