手机上直接跑小程序
不用装微信,输入 AppID 就能打开;最近使用、多账号都在。
首页 → 输入 AppID → 打开不用先学 Android 开发,也不用先配环境。六个最常见的用法,照着做就行。
不用装微信,输入 AppID 就能打开;最近使用、多账号都在。
首页 → 输入 AppID → 打开电脑 Chrome 连上 9400,给业务代码打断点、看闭包和调用栈。
设置开启调试 → adb forward → Chrome方法、URL、状态码、请求头、响应体、耗时,一条都不少。
网络调试 → 点开任意一条一条 Network 规则,把 39.9 改成 0.01,不改小程序一行代码。
Network 规则 → 修改响应一个 HTML 就能改页面文字、接管定位、监控 token。
插件 → + → 粘贴 HTML车机不方便登录微信?装个 APK,横屏直接跑小程序。
设置 → 横屏模式跑起来、停下来、看清楚、改得动。DevTools、Native 调试、抓包、 脚本与重写、插件,都在一个 APK 里。
内置 WMPF 运行时。登录、最近使用、多账号切换、 按 AppID 打开 —— 一整套宿主能力,不依赖微信客户端。
逻辑层 V8 inspector 直连标准 CDP。Chrome 里下断点、看闭包、走调用栈。
双路捕获、WebSocket 帧,外加 ProxyPin 风格脚本与 5 种重写规则。
一个 HTML,三段脚本。面板、逻辑层、渲染层各跑各的,跨层由宿主转发。
:9400 同时说 CDP 与 REST,Chrome 多标签可以并行接入。
小程序的业务代码跑在独立的 V8 里,不是网页,右键检查那套在这里用不上。 WeAppDev 把 WMPF 自带的 inspector 接出来,翻译成标准 CDP —— Chrome 那头只当它是一台普通浏览器。
// wmpf-net-probe.js · 逻辑层注入(function () { if (f.__wmpf) return '1'; var w = function (opt) { var id = 'wmpf_' + (++seq) + '_'; try { var o = opt || {}; collect(o, stack()); return send(id, o); } catch (e) { report(e); } };界面重绘 · 断点命中后的作用域与调用栈
JSAPI 中转层、Network 抓包、脚本与重写,都在 App 里,不用装模块。
小程序调 wx.getLocation、wx.login、wx.requestPayment,最终都会走 js-operatewxdata 中转。Native 页把请求与响应配对展示,连业务 JSON 一起给你。
真机 UI 重绘 · 跳一跳运行界面
不只小程序。跳一跳这类小游戏,也能在 WeAppDev 里打开; 抓包、断点、插件,同样适用。
不用打包,不用签名。一个文件里写三段脚本:面板浮窗、逻辑层(有 wx)、 渲染层(有 DOM)。跨层那一段,交给宿主总线。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="wad:package" content="my-first">
<meta name="wad:name" content="我的第一个插件">
<meta name="wad:version" content="1.0.0">
</head>
<body>
<!-- 面板:浮窗里运行,有 wad SDK -->
<button id="go">点我</button>
<script src="/ui/plugin-sdk.js"></script>
<script>
wad.ready.then(() => {
go.onclick = () => wad.logic.call('add', 1, 2)
.then(sum => wad.ui.toast('1 + 2 = ' + sum));
});
</script>
<!-- 逻辑层:有 wx,没有 DOM -->
<script type="text/wad-logic">
wad.register('add', (a, b) => a + b);
</script>
<!-- 渲染层:有 DOM,没有 wx -->
<script type="text/wad-render">
wad.render.dom(doc => {
const el = doc.createElement('div');
el.textContent = '插件已注入';
doc.body.appendChild(el);
});
</script>
</body>
</html>开启后页面中所有文字会加绿色虚线框。点击文字直接编辑,Enter 保存,Esc 撤销。
· 虚线框只用于提示可编辑,不会出现在最终页面里
· 修改立即写回 DOM,适合快速改文案
· 切换页面后会自动在新页面重新开启
很多车机不方便登录微信,甚至装不了微信。WeAppDev 是一个普通 APK, 装上去就能跑小程序和小游戏;车机默认横屏,大屏自动放大。
Chrome 那头什么都不用装,把一个地址指到手机上就行。改动全在 APK 自己身上, 系统分区没动 —— 所以不需要 root。
不需要编译,不需要配置代理,也不需要证书。
Android 7 及以上。桌面出现 WeAppDev 图标,可与官方微信共存,互不影响。
微信扫一次二维码完成授权。会话保存在本地,有效期约 24 小时,过期重扫即可。
输入 AppID 或原始 ID 查询并打开,也可以直接点「最近使用」里的一条。
把端口转到本地后,在 Chrome 地址栏粘贴下面这条地址即可。 网关兼容 /json/list 与 /devtools/*, chrome://inspect 也能直接发现页面。
所有画面按当前版本 App 的界面重新绘制,不含真实小程序与账号信息。
// wmpf-net-probe.js · 逻辑层注入(function () { if (f.__wmpf) return '1'; var w = function (opt) { var id = 'wmpf_' + (++seq) + '_'; try { var o = opt || {}; collect(o, stack()); return send(id, o); } catch (e) { report(e); } };能力边界、会话时效、以及为什么不那么做。
不需要。所有能力都内置在 App 里,不修改系统分区,也不依赖任何框架环境。
装 WeAppDev 的那台设备不需要。它自带 WMPF 运行时,登录只是用另一台手机上的微信扫一次码,换一个本地会话;不装微信也能打开小程序。
不一定。网关默认绑 0.0.0.0:9400,手机和电脑在同一网段时直接访问 http://<手机IP>:9400 即可。adb forward 只是最省事、不受网络策略影响的方式。
插件的逻辑层与渲染层注入都依赖 CDP 调试通道。关闭后宿主零注入:面板仍可打开,但 logic / storage / network 不运行。这是有意的边界——随时可以退回到「什么都没发生」的状态。
不能。捕获点在当前小程序的 WMPF 运行时内部,只能看到这个小程序自己发出的请求。系统级抓包请继续用 Charles / mitmproxy。
支持。跳一跳这类小游戏可以直接在 WeAppDev 里启动,和普通小程序共用同一套运行时;Network、Native、DevTools 同样适用。
独立 WMPF 运行时 · Chrome DevTools · 明文网络 · 插件系统。
没有框架,没有 root,装完就能跑。
仅供学习与研究使用,请勿用于商业用途或未授权的小程序。