记企业微信调用wx.getContent判断进入H5页面的入口环境

发布时间 2023-10-02 19:34:47作者: csjoz11

首先引用所需要的js文件

<!-- config -->
<script src="//res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<!-- agentConfig -->
<script type="text/javascript" src="https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js"></script>
 
获取config的配置信息,配置成功后在调用你所需要调用企业微信的接口

注意:如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。

调用agentConfig(注入的是应用的身份与权限)时要在config(注入的是企业的身份与权限)信息配置成功后在配置(注意:从企业微信3.0.24及以后版本(可通过企业微信UA判断版本号),无须先调用wx.config,可直接wx.agentConfig.)

wx.agentConfig({
          beta: true, // 必须这么写,否则wx.invoke调用形式的jsapi会有问题
          // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
          // debug: true,
          // 必填,企业微信的corpid,必须与当前登录的企业一致
          corpid: data.wx_corpid,
          // 必填,公众号的唯一标识
          agentid: data.wx_agentid,
          // 必填,生成签名的时间戳
          timestamp: data.sign.timestamp,
          // 必填,生成签名的随机串
          nonceStr: data.sign.nonceStr,
          // 必填,签名
          signature: data.sign.signature,
          // 必填,需要使用的JS接口列表,所有JS接口列表
          jsApiList: ["checkJsApi", "getContext", "getCurExternalContact"],
          success: function(res) {
            _this.checkJsApi()
          }
        })
 checkJsApi:当前客户端版本是否支持指定JS接口

wx.checkJsApi({
    jsApiList: ['chooseImage'], // 需要检测的JS接口列表
    success: function(res) {
        // 以键值对的形式返回,可用的api值true,不可用为false
        // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
    }
});
成功后调用wx.getContext接口,获取进入的信息,通过wx.getCurExternalContact获取用户id获取数据,后面就根据业务逻辑写就好了

checkJsApi() {
      const _this = this
      wx.checkJsApi({
        jsApiList: [ "getContext", "getCurExternalContact"], // 需要检测的JS接口列表
        success: function (res) {
          // 以键值对的形式返回,可用的api值true,不可用为false
          // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
          let obj = res.checkResult;
          wx.invoke('getContext', {}, function(res){
            if(res.err_msg == "getContext:ok"){
              // single_kf_tools  客服工具栏进入
              // entry  = res.entry ; //返回进入H5页面的入口类型,目前有normal、contact_profile、single_chat_tools、group_chat_tools、chat_attachment
              if (res.entry === 'single_kf_tools') {
                _this.getUserId()
              }
            }else {
              //错误处理
              _this.$toast('请从微信客服端进入!')
            }
          });
        },
      });
    },
    getUserId() {
      const _this = this
      wx.invoke('getCurExternalContact', {}, function(res){
        if (res.err_msg == "getCurExternalContact:ok") {
          _this.userId  = res.userId ; //返回当前外部联系人userId
          const params = {
            company_id: localStorage.getItem("company_id") || Cookies.get('company_id'),
            weixin_id: _this.userId
          }
          _this.getData(params)
        } else {
          //错误处理
          console.log('getCurExternalContact:err')
          // window.alert(res)
        }
      });
    }
 
————————————————
版权声明:本文为CSDN博主「learning_ever」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/learning_ever/article/details/124380805