新建了一个uniapp项目 根据企业微信API文档 可知只需调用2次接口就能完成该功能 但在实际的开发中 却遇到了很多问题 特此记录下来
首先确保在企微后台都添加了相关应用并配置好了可信域名 后端接口完善
调用企业微信接口时 在企业微信浏览器上调试 企业微信调试
根据企业微信API文档 发现只需调用 wx.agentConfig 和相关的接口就可以 但是请注意企业微信3.0.24及以后版本才能直接调用wx.agentConfig 否则要先确保wx.config调用成功
根据api文档 新建一个js文件 并将需要引用的接口整理出来
根据文档所讲 首先要引入jssdk 这里有个坑
<script src="https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js"></script>
最后发现在mac windows iphone android不同设备上 有些能调用成功 有些会报错
最后查询了资料 说可能是uniapp内置的变量与jssdk变量名冲突 遂改用jWeixin.agentConfig 为适应不同端 也改了引入的jssdk 所以引用下面两个
<script src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
<script src="https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js"></script>
如果企微后台没有配好相关配置 在调用agentConfig的时候会报错 直接将 里面的链接打开 就能看到错误码对应的错误信息
然后后面调取选人接口的时候 发现企业微信在windows android mac上面是可以的 但在iphone上是不行的 alert 和uni.showToast 在接口success和fail的时候 都没有触发 通过wx.checkJsApi 去验证也是没有触发 最后只能通过console去打印 最后发现根本就没走到agentConfig 说明iphone这边没有用到jssdk对象 最后是又将jWeixin.agentConfig改为wx.agentConfig 然后iphone可以了 其他端又不行了
(这里卡了我一个下午 查阅了很多资料 像npm i wxwork-jsapi 去引jssdk 或者每次调接口都先agentConfig成功后调相应接口 都没用 说明两个问题 1企业微信文档上说的是用cdn的方式引自有一定的道理 2页面进来 先agentConfig 后面需要接口单独再调 和需要接口时 先agentConfig成功再调单独接口 都是可以的)
最后根据测试得出要判断当前设备是什么端 再选择用jWeixin.agentConfig还是wx.agentConfig 这样就解决了问题
完整页面如下
效果
企业微信浏览器本地调试:
manifest.json 将https 去掉勾选
将apiBaseUrl改成本地
打开企业微信 调成debug模式 输入 地址http://localhost:8080/xxxx