收藏
回答

企业微信的jssdk中的wx.agentConfig不存在?

问题类型 API/组件名称 终端类型 微信版本 基础库版本
Bug wx.agentConfig 微信安卓客户端 3.0.0 Android 6.0.1 WeChat7.0.1

代码如下:

wx.config({
  beta: true, // 必须这么写,否则wx.invoke调用形式的jsapi会有问题
  debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  appId: this.qsObj.corpid, // 必填,企业微信的corpID
  timestamp: qyTicket.timestamp, // 必填,生成签名的时间戳
  nonceStr: qyTicket.nonceStr, // 必填,生成签名的随机串
  signature: qyTicket.signature, // 必填,签名,见 附录-JS-SDK使用权限签名算法
  jsApiList: [
    "onMenuShareAppMessage",
    "onMenuShareWechat",
    "onMenuShareTimeline",
    "startRecord",
    "stopRecord",
    "onVoiceRecordEnd",
    "playVoice",
    "pauseVoice",
    "stopVoice",
    "onVoicePlayEnd",
    "uploadVoice",
    "downloadVoice",
    "chooseImage",
    "predivImage",
    "uploadImage",
    "downloadImage",
    "getLocalImgData",
    "predivFile",
    "getNetworkType",
    "onNetworkStatusChange",
    "openLocation",
    "getLocation",
    "startAutoLBS",
    "stopAutoLBS",
    "onLocationChange",
    "onHistoryBack",
    "hideOptionMenu",
    "showOptionMenu",
    "hideMenuItems",
    "showMenuItems",
    "hideAllNonBaseMenuItem",
    "showAllNonBaseMenuItem",
    "closeWindow",
    "openDefaultBrowser",
    "scanQRCode",
    "selectEnterpriseContact",
    "openEnterpriseChat",
    "chooseInvoice",
    "selectExternalContact",
    "getCurExternalContact",
    "openUserProfile",
    "shareAppMessage",
    "shareWechatMessage",
    "startWifi",
    "stopWifi",
    "connectWifi",
    "getWifiList",
    "onGetWifiList",
    "onWifiConnected",
    "getConnectedWifi",
    "setClipboardData",
    "getClipboardData"
  ] // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
});
// eslint-disable-next-line no-undef
wx.ready(() => {
  console.log("wx.config wx.ready");
  // eslint-disable-next-line no-undef
  console.log("wx.agentConfig", wx.agentConfig);
  // eslint-disable-next-line no-undef
  wx.agentConfig({
    corpid: this.qsObj.corpid, // 必填,企业微信的corpid,必须与当前登录的企业一致
    agentid: this.qsObj.agentId, // 必填,企业微信的应用id
    timestamp: ticket.timestamp, // 必填,生成签名的时间戳
    nonceStr: ticket.nonceStr, // 必填,生成签名的随机串
    signature: ticket.signature, // 必填,签名,见附录1
    jsApiList: [
      "selectExternalContact",
      "openUserProfile",
      "thirdPartyOpenPage",
      "sendChatMessage",
      "getCurExternalContact",
      "shareToExternalContact"
    ], //必填
    success: res => {
      this.$store.dispatch("CHANGE_CONFIG_STATE", 1);
      console.log("agentConfig success ", res);
    },
    fail: function(res) {
      console.log("agentConfig fail ", res);
      onError && onError(res);
      this.$store.dispatch("CHANGE_CONFIG_STATE", -1);
      // alert('wx.agentConfig: ' + res.errMsg)
      if (res.errMsg.indexOf("function not exist") > -1) {
        alert("版本过低请升级");
      } else {
        alert(res.errMsg);
      }
    },
    complete: res => {
      this.getCurExternalContact();
      callback && callback(res);
    }
  });
  onReady && onReady();
  // eslint-disable-next-line no-undef
  !showMenu && wx.hideOptionMenu && wx.hideOptionMenu();
});


但是发现在一些情况下会出现,console.log("wx.agentConfig", wx.agentConfig);打印的是undefined


这种情况在Android上特别会存在,开启了servicework后必现。这里serviceworker设置的url配置了https://res.wx.qq.com,只要开启,必然会报错。

IOS上开启正常;


实在是获取侧边栏的用户id需要太长的时间,能想到可以优化的地方也没什么用,官方麻烦听听用户反馈啊!!!!!!

回答关注问题邀请回答
收藏

2 个回答

登录 后发表内容
问题标签