企业微信开发排雷指北
编者按:陆陆续续花了比预估时间长的一个《科技管理系统移动审批》需求。因为是第一个吃螃蟹的需求,之前组织里面没有人尝试过使用企业微信对外网的应用,所以走了不少弯路。在同事和搜索引擎的帮助下克服了很多困难,即使是腾讯文档或者外部服务都没法解决。现将一些地雷和排雷方案列举以下以飨读者。
注:企业微信服务器版本为。
-
wx.config
和wx.agentConfig
微信文档的示例中传入
wx.config
的timestamp
字段用的字符串形式。的确,这个示例运行的很好。wx.agentConfig
使用类似的参数,不过按照wx.config
形式调用的时候一直报错agentConfig:fail
。将debug打开也没有什么大用。后来忍无可忍的装了
vConsole
,终于发现错误信息是timestamp must be number
,于是加上了parseInt(timestamp)
,世界清净了。 -
应用跳转地址。
跳转地址右面#号的两个大写字母的字样是不可以省略的。如果省略,企业微信iOS的客户端正常解析,安卓客户端会报奇怪的错。具体表现在
wx.checkJsApi
返回fail_permission denied
。在网上搜索引擎搜到的信息及解决方案均和Javascript
的ES6
语法有关,但是babel
插件试过,全面改造ES5
语法都不能解决此错误。后来检查文档发现是跳转地址配置错误。 -
vConsole
打包问题。未解决。检查了一下代码可能只打包了
vConsole
而没有安装vconsole-webpack-plugin
。npm install -vconsole --save-dev npm install -vconsole-webpack-plugin --save-dev
具体表现是白屏,报
s是未定义的函数
。发布时去掉此插件可以解决。 -
VUE.js
的proxyTable
。proxyTable
可以让我们在开发阶段跳过浏览器同源问题。这里呼吁,如果需要经过严格的打包上线步骤,请直接在开发环境中使用NGINX
解决浏览器同源的问题。不要再将此问题引入生产。原因是
proxyTable
在webpack
中仅供开发,不会被打包成生产代码。 -
企业微信js
引用问题。注意在引用企业微信脚本时一定要用文档上的。(其实无所谓)但是如果你的应用发布成
https
入口话,脚本协议一定要使用https
,有些浏览器会判断安全性而阻止非https
协议的资源加载。