调试 HAC
使用 Chrome DevTools 调试 HAC 中加载的活字格 Web 应用。
HAC 本质上是包含 WebView 的 Android 原生应用。页面白屏、按钮无响应、样式错位、接口失败、扫码结果没有写入页面时,优先用 Chrome DevTools 查看运行时状态。
调试范围与前提
Chrome DevTools 主要查看 WebView 中的页面、脚本、网络请求和本地存储;它不能替代 HAC 日志、Android 系统日志或 PDA 厂商工具。设备能力问题应沿着“页面命令 -> HAC 桥接 -> Android 权限 / 系统服务 -> PDA 厂商硬件”的链路逐层确认。
使用 chrome://inspect 需要同时满足以下条件:
- HAC 版本允许 WebView 远程调试;如果产品版本或设备管理策略关闭了该能力,Chrome 不会显示对应的
Remote Target; - Android 已开启 USB 调试,并已接受这台电脑的授权;
- HAC 在前台运行,目标页面已经加载;
- 电脑、USB 驱动、数据线和设备的 USB 模式均正常。
仅限授权设备
远程调试可能暴露页面内容、Cookie、Local Storage 和接口数据。只在授权的测试设备上操作,使用测试账号,不要导出或提交包含密码、令牌和敏感业务数据的调试信息。
准备工作
- 电脑已安装 Chrome;
- Android 手机或 PDA 已安装 HAC;
- 使用可传输数据的 USB 线连接设备;
- HAC 中已打开需要调试的活字格页面;
- PDA 厂商 USB 驱动已安装,设备 USB 模式不是“仅充电”。
开启 USB 调试
- 在设备“关于手机 / 关于设备”中连续点击版本号,开启开发者选项;
- 打开“USB 调试”;
- 如有“启用视图属性检查功能”,一并开启;
- 用 USB 线连接电脑;
- 设备弹出授权提示时选择允许。
![]() | ![]() |
|---|
验证 USB / ADB 连接
如果电脑已安装 Android SDK Platform-Tools,可以先运行:
adb devices| 输出状态 | 含义 | 处理方式 |
|---|---|---|
device | 设备已连接并授权 | 继续连接 DevTools |
unauthorized | 设备未授权当前电脑 | 解锁设备并确认 USB 调试授权;必要时撤销授权后重新连接 |
offline | ADB 连接异常 | 重新插拔数据线、切换 USB 口或重启 ADB / 设备 |
| 没有设备 | 驱动、数据线或 USB 模式异常 | 更换数据线,切换为文件传输并安装厂商驱动 |
没有 ADB 工具时也可以直接使用 chrome://inspect,但 ADB 状态有助于区分“USB 连接问题”和“WebView 未开放调试”。
连接 DevTools
-
电脑打开 Chrome;
-
在地址栏输入以下地址;
chrome://inspect/#devices -
勾选
Discover USB devices; -
打开 HAC 并进入目标页面;
-
在
Remote Target中根据页面标题或 URL 找到 HAC 对应的WebView,点击inspect; -
DevTools 打开后刷新目标页面,确认 Console 和 Network 能持续收到新的记录。
设备连接正常但始终看不到 HAC 页面时,应确认 HAC 是否允许 WebView 远程调试。该能力被产品版本或企业设备策略关闭时,继续更换数据线没有作用,应改用 HAC 日志和设备侧检查。
排查顺序
先用同一个账号、同一条业务数据和同一网络环境缩小问题范围:
PC 浏览器是否也能复现
-> 能:优先检查页面代码、业务数据、账号权限和服务端接口
-> 不能:继续检查 HAC 的 WebView、缓存、证书和移动端布局
页面正常,但设备能力失败
-> 检查插件命令和返回值
-> 检查 Android 权限与系统开关
-> 检查 HAC 日志
-> 检查 PDA 厂商服务和硬件配置DevTools 中建议按以下顺序排查:
| 面板 | 重点看什么 | 需要保留的证据 |
|---|---|---|
| Console | JavaScript 报错、插件命令调用、未处理异常和扫码后脚本错误 | 第一条错误、完整堆栈、发生时间和复现动作 |
| Network | 请求 URL、状态码、证书、跨域、超时、请求参数和响应内容 | 失败请求、状态码、耗时和脱敏后的响应 |
| Elements | 小屏布局、遮挡、透明、弹窗、焦点和底部按钮位置 | 问题元素、计算样式和设备截图 |
| Application | 登录态、Cookie、Local Storage、Session Storage 和缓存 | 相关键名、有效期和脱敏后的状态,不记录令牌原文 |
建议先看 Console 和 Network,再查样式和本地缓存。不要一开始就猜设备问题。
调试页面和网络请求
- 在 Console 和 Network 中清除旧记录,勾选
Preserve log; - 从问题发生前一步开始,只复现一次,记录操作时间;
- Console 有错误时,先处理最早出现的错误,再看后续连锁错误;
- Network 有失败请求时,检查 URL、方法、状态码、耗时、请求参数和响应;
- 对比 PC 浏览器与 HAC 中相同请求的 URL、请求头、Cookie、响应和耗时;
- 修正后使用相同账号和数据重新验证,并确认没有重复提交业务记录。
常见网络判断:401 / 403 通常需要检查登录态和权限,404 需要检查 URL 和发布路径,5xx 需要检查服务端日志,证书、跨域、混合内容和超时错误应结合 Console 与 Network 判断。
页面更新后仍显示旧内容时,先确认服务器已经发布新版本,再检查 WebView 缓存。清理 Cookie、站点数据或本地存储可能导致退出登录或删除未提交数据,操作前必须确认业务状态已经保存。
调试 HAC 设备能力
扫码、定位、相机、BLE、NFC、文件和物理按键等问题按以下顺序排查:
- 在 Console 中确认页面是否进入了调用分支,命令名称和参数是否正确;
- 确认命令是否返回成功、失败、取消或超时,页面是否遗漏错误处理;
- 检查 Android 权限、系统开关和 HAC 配置;
- 使用 PDA 厂商测试工具确认硬件本身能否工作;
- 扫描头或 UHF 无结果时,核对广播 / Intent 模式、Action、Extra key、前后缀和扫描服务状态;
- 查看HAC 日志,确认容器是否收到命令、调用设备并返回结果;
- 离开页面再返回,确认持续扫码、广播、BLE 和物理按键监听没有重复注册或残留。
如果厂商工具也无法取得结果,问题通常位于设备硬件或厂商服务;如果厂商工具正常但 HAC 没有记录,优先检查 HAC 配置和权限;如果 HAC 已返回结果但页面未更新,优先检查页面脚本、变量写入和业务校验。
常见问题
| 问题 | 可能原因 | 处理建议 |
|---|---|---|
| Chrome 看不到设备 | 数据线、USB 模式、授权或厂商驱动异常 | 查看 adb devices,更换数据线或 USB 口,切换为文件传输并重新授权 |
| 能看到设备,看不到 HAC 页面 | HAC 未在前台、目标页面未加载或 WebView 远程调试被关闭 | 打开实际业务页面并刷新 chrome://inspect;确认 HAC 版本和设备策略支持调试 |
| 存在多个 Remote Target | 同一设备有多个 WebView 或页面 | 根据页面标题和 URL 选择 HAC 对应目标,不要调试系统或其他应用页面 |
| 点击 inspect 后断开 | HAC 切到后台、USB 不稳定或 WebView 异常 | 保持 HAC 前台,更换数据线并重试;记录 HAC 和 WebView 版本 |
| 页面白屏 | 页面脚本错误、资源失败、证书或 WebView 兼容问题 | 先看 Console 第一条错误和 Network 失败资源,再对比 PC 浏览器 |
| 浏览器正常,HAC 异常 | WebView、缓存、移动端布局、证书或插件能力不同 | 对比 User Agent、请求、页面样式和 WebView 版本,确认是否只在目标机型出现 |
| 登录后立即失效 | Cookie、站点地址、时间、缓存或服务端会话异常 | 对比 PC 与 HAC 的登录请求和 Cookie;确认设备日期时间与服务器一致 |
| 接口重复提交 | 按钮重复触发、扫码监听重复注册或超时后再次提交 | 检查事件绑定和 Network 请求次数,使用业务幂等键并保留待确认状态 |
| 物理扫码键无结果 | 广播配置、页面监听、厂商扫描服务或权限异常 | 先用厂商工具验证扫描,再核对 Action、Extra key、监听状态和 HAC 日志 |
| HAC 已返回结果但页面不更新 | 页面脚本、变量写入、页面生命周期或业务校验异常 | 在命令回调处断点或输出日志,检查结果解析和后续分支 |
| 相机、定位、BLE 或 NFC 无结果 | 权限、系统开关、硬件能力或命令参数异常 | 逐项检查权限和系统开关,使用最小测试页调用一次并查看 HAC 日志 |
反馈问题时收集
- 预期结果、实际结果和最短复现步骤;
- 问题发生时间、复现频率以及是否可以稳定复现;
- 设备型号、Android 版本、WebView 版本、HAC 版本;
- 活字格应用版本、插件版本和发布时间;
- 网络环境、服务器地址类型以及是否使用 VPN / 代理;
- DevTools Console 第一条错误、完整堆栈和 Network 失败请求;
- 同一页面在 PC 浏览器和 HAC 中的表现差异;
- 设备截图或录屏,以及对应时间段的 HAC 日志;
- 是否只发生在某个设备型号、账号、网络或业务数据上。
提交前应对请求参数、响应、Cookie、日志和截图进行脱敏,不要提供密码、令牌或无关的个人与业务数据。
调试完成标准
- 已确定问题位于页面、服务端接口、HAC 桥接、Android 系统还是 PDA 厂商硬件;
- 已保存可以说明根因的最小证据,例如错误堆栈、失败请求、命令返回或 HAC 日志;
- 修复后使用相同设备、账号、网络和业务数据验证通过;
- 已验证失败恢复、重复操作和页面重新进入,不会丢失或重复提交业务数据;
- 调试完成后关闭 USB 调试并撤销不再需要的电脑授权;
- 临时开启的详细 HAC 日志已经关闭,测试账号和敏感调试数据已按项目要求清理。
需要容器侧日志时,继续参考日志。

