uniapp H5 嵌入企业微信 调选人接口(前端)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uniapp H5 嵌入企业微信 调选人接口(前端)相关的知识,希望对你有一定的参考价值。
参考技术A 新建了一个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
以上是关于uniapp H5 嵌入企业微信 调选人接口(前端)的主要内容,如果未能解决你的问题,请参考以下文章
uniapp 在h5中怎么引入腾讯地图的前端定位组件,或者直接得到位置
uniApp实现企业公众号oauth2静默授权登录H5前端部分