首页 > 技术文章 > 企业微信开发排雷指北

charset 2021-07-26 14:24 原文

编者按:陆陆续续花了比预估时间长的一个《科技管理系统移动审批》需求。因为是第一个吃螃蟹的需求,之前组织里面没有人尝试过使用企业微信对外网的应用,所以走了不少弯路。在同事和搜索引擎的帮助下克服了很多困难,即使是腾讯文档或者外部服务都没法解决。现将一些地雷和排雷方案列举以下以飨读者。

注:企业微信服务器版本为。

  1. wx.configwx.agentConfig

    微信文档的示例中传入wx.configtimestamp字段用的字符串形式。的确,这个示例运行的很好。wx.agentConfig使用类似的参数,不过按照wx.config形式调用的时候一直报错agentConfig:fail。将debug打开也没有什么大用。

    后来忍无可忍的装了vConsole,终于发现错误信息是timestamp must be number,于是加上了parseInt(timestamp),世界清净了。

  2. 应用跳转地址。

    跳转地址右面#号的两个大写字母的字样是不可以省略的。如果省略,企业微信iOS的客户端正常解析,安卓客户端会报奇怪的错。具体表现在wx.checkJsApi返回fail_permission denied。在网上搜索引擎搜到的信息及解决方案均和JavascriptES6语法有关,但是babel插件试过,全面改造ES5语法都不能解决此错误。后来检查文档发现是跳转地址配置错误。

  3. vConsole打包问题。

    未解决。检查了一下代码可能只打包了vConsole而没有安装vconsole-webpack-plugin

    npm install -vconsole --save-dev
    npm install -vconsole-webpack-plugin --save-dev
    

    具体表现是白屏,报s是未定义的函数。发布时去掉此插件可以解决。

  4. VUE.jsproxyTable

    proxyTable可以让我们在开发阶段跳过浏览器同源问题。这里呼吁,如果需要经过严格的打包上线步骤,请直接在开发环境中使用NGINX解决浏览器同源的问题。不要再将此问题引入生产。

    原因是proxyTablewebpack中仅供开发,不会被打包成生产代码。

  5. 企业微信js引用问题。

    注意在引用企业微信脚本时一定要用文档上的。(其实无所谓)但是如果你的应用发布成https入口话,脚本协议一定要使用https,有些浏览器会判断安全性而阻止非https协议的资源加载。

推荐阅读