调试 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 调试

  1. 在设备“关于手机 / 关于设备”中连续点击版本号,开启开发者选项;
  2. 打开“USB 调试”;
  3. 如有“启用视图属性检查功能”,一并开启;
  4. 用 USB 线连接电脑;
  5. 设备弹出授权提示时选择允许。
打开开发者选项开启 USB 调试

验证 USB / ADB 连接

如果电脑已安装 Android SDK Platform-Tools,可以先运行:

adb devices
输出状态含义处理方式
device设备已连接并授权继续连接 DevTools
unauthorized设备未授权当前电脑解锁设备并确认 USB 调试授权;必要时撤销授权后重新连接
offlineADB 连接异常重新插拔数据线、切换 USB 口或重启 ADB / 设备
没有设备驱动、数据线或 USB 模式异常更换数据线,切换为文件传输并安装厂商驱动

没有 ADB 工具时也可以直接使用 chrome://inspect,但 ADB 状态有助于区分“USB 连接问题”和“WebView 未开放调试”。

连接 DevTools

  1. 电脑打开 Chrome;

  2. 在地址栏输入以下地址;

    chrome://inspect/#devices
  3. 勾选 Discover USB devices

  4. 打开 HAC 并进入目标页面;

  5. Remote Target 中根据页面标题或 URL 找到 HAC 对应的 WebView,点击 inspect

  6. DevTools 打开后刷新目标页面,确认 Console 和 Network 能持续收到新的记录。

设备连接正常但始终看不到 HAC 页面时,应确认 HAC 是否允许 WebView 远程调试。该能力被产品版本或企业设备策略关闭时,继续更换数据线没有作用,应改用 HAC 日志和设备侧检查。

排查顺序

先用同一个账号、同一条业务数据和同一网络环境缩小问题范围:

PC 浏览器是否也能复现
-> 能:优先检查页面代码、业务数据、账号权限和服务端接口
-> 不能:继续检查 HAC 的 WebView、缓存、证书和移动端布局
页面正常,但设备能力失败
-> 检查插件命令和返回值
-> 检查 Android 权限与系统开关
-> 检查 HAC 日志
-> 检查 PDA 厂商服务和硬件配置

DevTools 中建议按以下顺序排查:

面板重点看什么需要保留的证据
ConsoleJavaScript 报错、插件命令调用、未处理异常和扫码后脚本错误第一条错误、完整堆栈、发生时间和复现动作
Network请求 URL、状态码、证书、跨域、超时、请求参数和响应内容失败请求、状态码、耗时和脱敏后的响应
Elements小屏布局、遮挡、透明、弹窗、焦点和底部按钮位置问题元素、计算样式和设备截图
Application登录态、Cookie、Local Storage、Session Storage 和缓存相关键名、有效期和脱敏后的状态,不记录令牌原文

建议先看 ConsoleNetwork,再查样式和本地缓存。不要一开始就猜设备问题。

调试页面和网络请求

  1. 在 Console 和 Network 中清除旧记录,勾选 Preserve log
  2. 从问题发生前一步开始,只复现一次,记录操作时间;
  3. Console 有错误时,先处理最早出现的错误,再看后续连锁错误;
  4. Network 有失败请求时,检查 URL、方法、状态码、耗时、请求参数和响应;
  5. 对比 PC 浏览器与 HAC 中相同请求的 URL、请求头、Cookie、响应和耗时;
  6. 修正后使用相同账号和数据重新验证,并确认没有重复提交业务记录。

常见网络判断:401 / 403 通常需要检查登录态和权限,404 需要检查 URL 和发布路径,5xx 需要检查服务端日志,证书、跨域、混合内容和超时错误应结合 Console 与 Network 判断。

页面更新后仍显示旧内容时,先确认服务器已经发布新版本,再检查 WebView 缓存。清理 Cookie、站点数据或本地存储可能导致退出登录或删除未提交数据,操作前必须确认业务状态已经保存。

调试 HAC 设备能力

扫码、定位、相机、BLE、NFC、文件和物理按键等问题按以下顺序排查:

  1. 在 Console 中确认页面是否进入了调用分支,命令名称和参数是否正确;
  2. 确认命令是否返回成功、失败、取消或超时,页面是否遗漏错误处理;
  3. 检查 Android 权限、系统开关和 HAC 配置;
  4. 使用 PDA 厂商测试工具确认硬件本身能否工作;
  5. 扫描头或 UHF 无结果时,核对广播 / Intent 模式、Action、Extra key、前后缀和扫描服务状态;
  6. 查看HAC 日志,确认容器是否收到命令、调用设备并返回结果;
  7. 离开页面再返回,确认持续扫码、广播、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 日志已经关闭,测试账号和敏感调试数据已按项目要求清理。

需要容器侧日志时,继续参考日志

本页目录