企業微信jssdk


引入企業微信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
企業微信客服二維碼 


免責聲明!

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



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