Native 调试
小程序的 wx.getLocation、wx.login、wx.requestPayment 这些 JSAPI,最终都会走一层 js-operatewxdata 中转,再交给 native。
Network 页看到的是 HTTP 请求;Native 页看到的是这层 JSAPI 中转。两边不是同一批数据,很多时候你需要的是后者。
打开
开发者工具 → Native调试。
页面顶部会显示:
text
Native 调试
JSAPI · 中转层监听中右下角的按钮是捕获开关:捕获中 / 已暂停。关闭后不再产生新记录。
页面里有什么
| 区域 | 内容 |
|---|---|
| 搜索 | 接口名、小程序、请求/响应内容 |
| 筛选 | 全部 / 请求 / 响应 |
| 列表 | 按 seq 配对的请求 + 响应组合 |
| 详情 | 接口、appid、序号、请求体、响应体、云网关明文 |
列表里每条会显示:
- 接口名(从 body 解析出的业务名,例如
getLocation) operateWXData外层标识- 请求大小 / 响应大小
已完成或等待响应
点开一条,可以分别复制请求与响应。
典型用法
1. 确认某个操作到底发了什么
比如点了「登录领券」没反应:
- 打开 Native 捕获;
- 在小程序里点一次;
- 看新增的
login或operateWXData组合; - 展开请求体,确认参数是否齐全;
- 展开响应体,确认返回的是
code还是错误。
2. 看云网关的明文
部分请求会带云网关加密包。Native 详情里会显示解密后的明文(需要已捕获到对应 key),比在 Network 页看密文直观。
3. 验证插件的改写
插件订阅 nativeReq / nativeResp 后,可以改写请求与响应。改完再回 Native 页看:
- 请求体是不是你写入的内容;
- 响应体是不是被替换了;
- 顺序是否符合预期(多个插件按顺序链式执行)。
写法见 事件系统 · nativeReq / nativeResp。
和 Network 的区别
| Native 调试 | Network 抓包 | |
|---|---|---|
| 看什么 | JSAPI 中转(业务 JSON) | HTTP / WS 请求 |
| 数据来源 | js-operatewxdata | wx.request + Cronet 边界 |
| 适合 | 登录、定位、支付、授权 | 接口、图片、埋点、长连接 |
| 插件改写 | nativeReq / nativeResp | wad.net.addRule |
两个页面可以同时开,互不影响。
常见问题
一条都没有?
先确认捕获开关是「捕获中」,再确认小程序确实调用了 JSAPI。纯前端操作不会产生 Native 记录。
只有请求没有响应?
可能接口还没返回,或者这次调用失败了。等一会儿或重新触发一次。
接口名都是 operateWXData?
业务名是从 body 解析的。解析不到时会回退到外层名,这时看请求体里的 api_name 或 event_name。
开启后小程序变慢?
每条记录都要做一次中转回调,量很大时会有一些开销。排查完可以暂停捕获。