云迈博客

您现在的位置是:首页 > 其他 > 正文

其他

uniapp 企业微信SDK引入

吴志云2022-07-30其他15
uniapp中引入SDK需要使用自定义index.html模板在index.html中引入```javascriptwindow.wx=null;由于uniapp自带的wx会覆盖企业

uniapp中引入SDK 需要使用自定义index.html模板
在index.html 中引入

<script type="text/javascript">
    window.wx = null; 由于uniapp自带的wx 会覆盖 企业微信sdk所以需要此步骤
            window.addEventListener("load",e=>{
                const jweixin=document.createElement("script");
                const jwxwork=document.createElement("script");
                jweixin.src="//res.wx.qq.com/open/js/jweixin-1.2.0.js";
                jweixin.src="https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js";
                document.body.appendChild(jweixin)
                document.body.appendChild(jwxwork)
    })        
</script>

//需要设置一些延时初始化

settimout(()=>{
 wx.config({ // 使用后端返回或者 自己加密签名
    beta: true,// 必须这么写,否则wx.invoke调用形式的jsapi会有问题
    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    appId: '', // 必填,企业微信的corpID
    timestamp: , // 必填,生成签名的时间戳
    nonceStr: '', // 必填,生成签名的随机串
    signature: '',// 必填,签名,见 附录-JS-SDK使用权限签名算法
    jsApiList: [] // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
});

},1000)
wx.ready(function(){ //微信sdk初始化完成后做些什么
    // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});

config注入的是企业的身份与权限,而agentConfig注入的是应用的身份与权限。尤其是当调用者为第三方服务商时,通过config无法准确区分出调用者是哪个第三方应用,而在部分场景下,又必须严谨区分出第三方应用的身份,此时即需要通过agentConfig来注入应用的身份信息。

wx.agentConfig({//需要config初始化后操作 agentConfig 签名与config签名有区别
    corpid: '', // 必填,企业微信的corpid,必须与当前登录的企业一致
    agentid: '', // 必填,企业微信的应用id (e.g. 1000247)
    timestamp: , // 必填,生成签名的时间戳
    nonceStr: '', // 必填,生成签名的随机串
    signature: '',// 必填,签名,见附录-JS-SDK使用权限签名算法
    jsApiList: ['selectCorpGroupContact'], //必填,传入需要使用的接口名称
    success: function(res) {
        // 回调
    },
    fail: function(res) {
        if(res.errMsg.indexOf('function not exist') > -1){
            alert('版本过低请升级')
        }
    }
});
wx.invoke("selectCorpGroupContact", { //调用企业微信通讯录
      fromDepartmentId: -1,// 必填,表示打开的通讯录从指定的部门开始展示,-1表示打开的通讯录从自己所在部门开始展示, 0表示从最上层开始。移动端,当需要展开的部门不在应用可见范围内,则从应用的可见范围开始展开。
      mode: "single",// 必填,选择模式,single表示单选,multi表示多选
      type: ["department", "user"],// 必填,选择限制类型,指定department、user中的一个或者多个},function(res){
         console.log(res)

      }
);

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~