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前端部分

uniapp图片或文件的预览和下载,兼容ios+安卓+浏览器+企业微信H5

在uni-app框架中使用rem(h5和微信小程序)

uniapp 实现企业微信网页授权登录

由PHP开发的H5微信支付接口