uniapp H5 嵌入企业微信 调选人接口(前端)

新建了一个uniapp项目  根据企业微信API文档 可知只需调用2次接口就能完成该功能 但在实际的开发中 却遇到了很多问题  特此记录下来

首先确保在企微后台都添加了相关应用并配置好了可信域名 后端接口完善
调用企业微信接口时 在企业微信浏览器上调试 企业微信调试

根据企业微信API文档 发现只需调用 wx.agentConfig 和相关的接口就可以  但是请注意企业微信3.0.24及以后版本才能直接调用wx.agentConfig   否则要先确保wx.config调用成功


根据api文档 新建一个js文件 并将需要引用的接口整理出来

wx.agentConfig
企业选人

根据文档所讲 首先要引入jssdk 这里有个坑

最后发现在mac windows iphone android不同设备上 有些能调用成功 有些会报错

最后查询了资料  说可能是uniapp内置的变量与jssdk变量名冲突  遂改用jWeixin.agentConfig  为适应不同端 也改了引入的jssdk  所以引用下面两个





如果企微后台没有配好相关配置 在调用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

你可能感兴趣的:(uniapp H5 嵌入企业微信 调选人接口(前端))