最近在开发企业微信的业务,可以借此机会学习到企业微信的开发,这让我非常开心、激动。殊不知,企业微信的开发让我很头疼,遇到了非常多的坑。在这里我记录一下,希望大家不要像我一样掉进坑里面。

 一、wx.agentConfig方法,在手机app端的企业微信是存在的,可是在桌面pc端的企业微信不存在,直接就undefined。

        1、发现问题:

        图1.1

         图1.2

        在企业微信h5开发之前,必须引入两份js(如上图1.1和图1.2),分别是jweixin-1.2.0.jsjwxwork-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

希望本篇文章对你有帮助,如果您有更好的解决方案,欢迎留言评论! 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐