在2017年的时候就做了这个分析,一直没发出来。⚠️注意文中使用的ide版本是Mac 版的,ide version: 1.01.1711020,不推荐在生产环境中使用。
准备工作
下载IDE版本:1.01.1711020
美化开发工具js代码:在js目录执行命令
find . -type f -name '*.js' -exec js-beautify -r -s 2 -p -f '{}' \
;打开针对IDE的调试工具:在./app.nw/js/core/index.js 第81行 init() 过后 加入以下代码:
nw.Window.get().showDevTools()
;在IDE源码中使用
global.contentWindow.console.log
来打印变量
微信开发者工具登陆接口
URL配置文件
全局搜索 LOGIN_URL
登录页面的固定url:
https://open.weixin.qq.com/connect/qrconnect?appid=xxx&redirect_uri=https%3a%2f%2fmp.weixin.qq.com%2fdebug%2fcgi-bin%2fwebdebugger%2fqrcode&scope=snsapi_login&state=login
他返回二维码扫码页面(html)。
此处代码可以全局搜索 _longPollURL
定位到该文件。
在集成到发布系统的时候,完全可以用headless chrome 或者是 phantom js 模拟请求来一步搞定。
ide中登陆流程如下
1 | // step1: 拿到二维码链接 |
生成体验版二维码
体验版二维码链接: https://open.weixin.qq.com/sns/getexpappinfo?appid=xxx&path=pages%2Fhome.html#wechat-redirect
⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️注意
预览接口 和 上传接口的 http method 都是 post,下面表格列的参数 是需要附加到url上面的query参数。
post的 body数据就是打包好的.wx文件,示例代码 见文章 微信小程序上传/预览代码分析 末尾。
预览接口
接口描述 | 预览小程序 |
---|---|
域名 | https://servicewechat.com |
路径 | /wxa-dev/testsource |
请求方法 | POST |
入参 | 参数见下面 |
返回 | 返回结果见下面 |
query参数:
1 | { |
返回结果1
2
3
4
5
6
7
8
9
10{
"baseresponse": {
"errcode": 0,
"errmsg": "test source success."
},
"qrcode_img": " base64 图片 ",
"wxpkg_size": 48269,
"compile_time": 0,
"widget_size": 0
}
上传接口
接口描述 | 上传小程序 |
---|---|
域名 | https://servicewechat.com |
路径 | /wxa-dev/commitsource |
请求方法 | POST |
入参 | 参数见下面 |
返回 | 返回结果见下面 |
query 入参
1 | { |
返回结果
1 | { |
检查是否已经设置了预览版
1 | { |