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

JavaScript014

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

新建了一个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

有点难,问题没有看太明白,不过我觉得可以onclick解决。等待问题补充。

你补充了问题,我也补充一下回答。

其实你可以把“自力更生”用<P>扩起来,把onclick装在p里面,虽然我知道在你的期望中这样是肯定不行的,不过应该可以给你一些思路,想想实际的实现方法。