最近在开发企业微信的业务,可以借此机会学习到企业微信的开发,这让我非常开心、激动。殊不知,企业微信的开发让我很头疼,遇到了非常多的坑。在这里我记录一下,希望大家不要像我一样掉进坑里面。
一、wx.agentConfig方法,在手机app端的企业微信是存在的,可是在桌面pc端的企业微信不存在,直接就undefined。
1、发现问题:
图1.1
图1.2
在企业微信h5开发之前,必须引入两份js(如上图1.1和图1.2),分别是jweixin-1.2.0.js和jwxwork-1.0.0.js(调用wx.agentConfig需要引入jwxwork-1.0.0.js)。对于我而言,一般都会先把这两份js文件下载下来,然后放到公司的静态资源服务器上(其实大部分开发者都会这样做,毕竟公司的静态资源服务器比较稳定),但是,就是这个操作,就引发了一个缺陷,什么缺陷呢?
就是在电脑pc端的企业微信wx.agentConfig是undefined,不存在了。可是,手机app端的企业微信wx.agentConfig是存在。出现这种神奇的问题,就非常消耗开发者的时间去排查问题,甚至进入死胡同。
2、分析问题:
为了解决这个问题,script标签里的js链接,我用官方提供的js链接,不用公司静态资源服务器的链接。此时此刻,大快人心,电脑pc端的企业微信wx.agentConfig不再是undefined。并且调用其他的api都正常了。
图1.3
在电脑pc端的企业微信打开调试工具(快捷键 ctrl + alt + shift + D,开启调试模式,打开h5后,右击,如上图1.3,可以打开调试工具),仔细查看,发现:官方提供js链接,其实就是服务器,对电脑pc端企业微信做了兼容处理(如下图1.4、图1.5、图1.6)。
图1.4,可见,jweixin-1.2.0.js暂时重定向了,
图1.5, jweixin-1.2.0.js根本就没有加载进来
图1.6, 旧版的jweixin-1.0.0.js就被加载进来了。因为旧版的jweixin-1.0.0.js是存在wx.agentConfig方法的。所以不需要引入jwxwork-1.0.0.js也是可以的
上文提到需要引入两份js,你可以理解为:旧版的jweixin-1.0.0.js,一个顶两个。
3、得出结论
方案一:直接使用官方的js链接,缺点:万一官方的服务器挂了,页面就报错了。
方案二:把旧版的jweixin-1.0.0.js下载下来,放到公司的静态资源服务器,然后引入,就可以完美解决问题了。目前,旧版的jweixin-1.0.0.js链接官方文档根本就没有写出来。可通过下图1.7找到它的链接,链接为:https://res.wx.qq.com/wwopen/js/jsapi/jweixin-1.0.0.js。
图1.7,被重定向后的链接
二、关于wx.error方法的回调函数的形参问题
1、发现问题
我目前打印一下失败的校验信息(如下图2.1)
图2.1
在手机app端打印的内容截图(如下图2.2),打印出来这样的错误信息:{"err_Info":"params_empty","errMsg":"config:preverifyjsapi:fail"}
图2.2
在电脑pc端打印的内容截图(如下图2.3),打印出来这样的错误信息:{"errMsg":"config:fail","err_msg":"some parameters are empty more info at https://open.work.weixin.qq.com/devtool/query?e=40063"}
图2.3
2、得出结论
不难发现,手机app端和电脑pc端的企业微信打印出来的错误信息是不一样的,这不是重点,重点是:这个信息会误导我们,让我们误以为,我们开发者配置的东西出了问题。事实上,就算是正确的配置,也是会这样打印出这样的信息,可以先不要纠结这个错误信息。
如果是第一次开发企业微信h5的开发者,需要特别注意,当你看到这样的信息,可以暂时忽略,直接看看其他的api是否调用成功;如果不能调用成功,再回过头来看。
三、关于企业微信后台的配置,需要注意的地方
1、前言
我目前做的需求有一个功能是:管家要在客户聊天窗口中,点击工具栏,打开h5页面后,分享小程序。
企业微信h5开发,一般需要自建应用。登录企业微信后台-----应用管理-----自建----自建应用(如下图3.1,图3.2)
图3.1
图3.2
创建应用之后,需要配置到聊天工具栏(如下图3.3),配置链接(如下图3.4)
图3.3
图3.4
2、发现问题
配置完之后,需要关联被分享的小程序(如果不关联小程序,是没有办法在企业微信中打开,影响用户体验),你可能会毫不犹豫的在刚刚创建的应用关联(如下图3.5),此时此刻,会引发什么问题呢?
图3.5
会引起的问题在配置到聊天工具栏的h5链接,无法修改(如下图3.6、图3.7)。此时,开发者又要耗费时间去研究了。
图3.6
图3.7
3、解决问题
其实要解决这个问题很简单,在应用主页先切回到为“网页”(如下图3.8),之后,就可以在配置到聊天工具栏中对h5链接进行修改。改完之后,再回到应用主页切回“小程序”即可。
图3.8
说了那么多,你可能会说,“为什么不同时创建两个应用,一个应用对应h5、另外一个应用对应小程序”,其实这样也是可以的。
4、注意点
刚刚说到,管家要在客户聊天窗口中,点击工具栏,打开h5页面后,需要分享小程序。还需要在后台配置一下(如下图3.9),点开之后,需要勾选一下刚刚创建的应用,不然的话,企业微信h5的wx.invoke('sendChatMessage', {})方法是无法分享的。
图3.9
文章来源:https://www.toymoban.com/news/detail-516451.html
希望本篇文章对你有帮助,如果您有更好的解决方案,欢迎留言评论! 文章来源地址https://www.toymoban.com/news/detail-516451.html
到了这里,关于企业微信h5开发(即JS-SDK),一不小心,就会掉进坑,进入死胡同的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!