APP 交互

HAC 中应用原生页、设备信息、PDF、电话、震动、提示音和广播命令的使用建议。

适用场景

APP 交互命令用于让活字格页面在 HAC 中调用部分 Android 原生能力,例如打开容器配置页、读取 APP / 设备信息、预览 PDF、拨打电话、震动、播放提示音、发送和接收广播。

这些命令通常会离开当前 Web 页面上下文、调用系统界面或监听外部事件。使用前要明确用户会看到什么、当前业务状态如何保存、失败后如何恢复。

使用前提

  • 应用运行在 HAC 中;
  • 已安装 PDA / Android 交互命令插件;
  • 已确认 HAC、Android 系统、PDA 型号和厂商程序支持对应能力;
  • 设备所需的电话、文件、通知、蓝牙或其他系统权限已经处理;
  • 页面能识别普通浏览器环境并隐藏或禁用相关入口;
  • 涉及广播时,Action、Type、Uri、Extra 来自厂商或目标 APP 文档;
  • 进入原生页面、拨打电话或关闭 APP 前,页面已保存需要保留的业务状态。

命令速查

能力命令类型输入 / 输出
容器页面打开APP的内置页面普通目标页面:配置或快速设置
环境信息读取APP信息同步或异步,按插件实现为准输出版本号和包名
环境信息读取APP信息到单元格同步或异步,按插件实现为准输出到指定单元格
环境信息读取设备唯一标识同步或异步,按插件实现为准输出 SSAID / Android ID
环境信息读取极光推送RegId同步或异步,按插件实现为准输出 RegId
APP 控制强制关闭APP普通无;立即关闭当前 APP
文件和电话预览PDF文件异步URL、文件名、密码
文件和电话拨打电话普通电话号码
反馈震动提醒普通持续时间(秒)
反馈播放提示音普通声音类型
广播发送广播异步Action、Type、Uri、Extra
广播开始接收广播异步Action;返回监听器注册 ID 和 Extra JSON
广播停止监听广播普通监听器注册 ID

推荐流程

读取环境并判断能力:

执行【读取APP信息】
-> 如果版本号和包名为 N/A:提示不在 HAC 中
-> 如果读取成功:继续调用设备能力
-> 提交问题或业务记录时保存 APP 版本、包名和设备标识

PDF 预览:

用户点击“查看 PDF”
-> 页面确认 PDF 地址、文件名和密码
-> 执行【预览PDF文件】
-> APP 下载 PDF 并打开内置预览页面
-> 用户查看或通过系统能力打印

广播监听:

进入需要监听的页面
-> 执行【开始接收广播】
-> 保存监听器注册 ID
-> 接收广播回调
-> 解析 Extra JSON
-> 按业务规则写入变量或触发命令
-> 离开页面时执行【停止监听广播】

推送目标绑定:

用户登录或设备绑定成功
-> 执行【读取极光推送RegId】
-> 将 RegId、用户、设备唯一标识和更新时间提交到服务端
-> 用户退出登录或设备解绑时清理服务端关系

关键能力说明

打开 APP 内置页面

【打开APP的内置页面】用于从活字格页面打开 HAC 的原生页面。目标页面包括“配置”和“快速设置”两类:配置页面适合逐项修改,快速设置页面适合通过扫码一次完成设备配置。

返回活字格页面后,应重新读取或校验服务器地址、扫描头、UHF、推送等关键配置,避免继续使用旧状态。

读取 APP 和设备信息

【读取APP信息】返回当前 HAC 的版本号和包名;如果页面不在 HAC 中运行,版本号和包名均为 N/A。可用它判断运行环境、记录问题环境或提示升级。

【读取APP信息到单元格】应使用独立单元格保存版本号、包名和读取状态,避免与业务输入混在一起。

【读取设备唯一标识】通常返回设备的 SSAID / Android ID,可用于设备绑定、操作审计和问题排查,但不能单独作为高安全认证凭据。涉及放行、审核等关键操作时,仍需结合账号、角色和业务规则。

强制关闭 APP

【强制关闭APP】会立即关闭当前 APP,可能中断未提交的数据和正在执行的操作。仅适合运维、异常恢复或明确结束 APP 的场景,不要放在普通业务完成动作或容易误触的位置。执行前应保存状态并提示用户。

预览 PDF 文件

【预览PDF文件】接收 PDF 文件 URL、保存到“下载”文件夹的文件名和 PDF 密码。文件名建议带 .pdf 后缀;去掉后缀后的文件名可作为预览标题。

需要确认 URL 在 HAC 中可访问,登录态或下载令牌没有过期。文件会保存到设备下载目录,项目还应明确文件清理和敏感 PDF 的访问范围。该命令不能保证无预览直接打印,打印机选择、纸型等能力取决于设备系统和现有配置。

拨打电话

【拨打电话】调用后会自动弹出拨号画面并拨出电话。调用前应展示被呼叫对象和号码,号码应来自可信业务数据或经过格式校验;对外呼叫建议记录操作人、时间、业务对象和号码来源。若项目只需要打开拨号界面而不立即拨出,应先确认插件在目标设备上的实际行为。

读取极光推送 RegId

【读取极光推送RegId】返回极光推送注册 ID,用于绑定推送目标。重新安装 APP、包名变化或推送配置变化后,RegId 可能变化,不同包名的 RegId 不能混用。服务端建议同时记录用户、设备唯一标识、APP 版本和更新时间,退出登录或设备解绑时清理对应关系。

震动和提示音

【震动提醒】可设置持续时间,成功反馈适合短震动,失败、重复或不匹配可使用更明显的震动。不要在高频回调中无限触发。

【播放提示音】支持通知提示音、闹钟和铃声类型。现场页面不能只依赖声音反馈,关键结果还应通过页面状态、文字、颜色或震动表达。

发送广播

【发送广播】是异步单向动作,插件参数与 Android Intent 的对应关系如下:

插件参数Android Intent
ActionIntent 的 Action
TypeIntent 的 MIME Type
UriIntent 的 Data
IntentExtrasIntent 的 Extra

Extra 的名称、类型和值应来自厂商或目标 APP 文档。类型以插件实际支持范围为准,常见类型包括 boolintfloatstring。广播已发送不代表目标 APP 已处理,页面不能把发送成功当作业务完成。

接收和停止广播

【开始接收广播】监听指定 Action,并在回调中返回监听器注册 ID 和 Extra JSON。Extra JSON 中每个 Extra 应按 nametypevalue 等字段解析。页面应保存注册 ID,按业务规则处理空 Extra、格式不匹配和重复回调。

【停止监听广播】需要使用开始监听时返回的注册 ID。离开页面、任务完成、切换模式、打开会打断流程的弹窗或收到预期结果后,应停止不再需要的监听,避免旧页面继续写入数据。

设计要点

  • 原生能力入口要放在明确按钮后,不要由页面加载或扫码成功自动触发危险动作;
  • PDF、电话、强制关闭、广播发送前要说明即将发生什么;
  • 震动和提示音要搭配页面状态,嘈杂或静音环境下仍能理解结果;
  • 广播、扫码、BLE 订阅、物理按键这类监听能力都要绑定页面生命周期;
  • 读取 APP、设备、RegId 等信息时,建议写入隐藏字段或日志,不和业务输入混在一起;
  • 电话、设备标识、RegId 和 PDF 等信息应按项目的权限和留存规则保护。

异常处理

异常常见原因推荐处理
APP 信息返回 N/A不在 HAC 中运行提示设备能力不可用或切换兼容流程
设备标识为空容器不支持、系统限制或命令失败提示重试并记录 APP 版本、设备型号和错误信息
内置页面返回后状态未更新原生页面修改了配置,Web 页面仍使用旧状态返回后重新读取关键配置
PDF 无法预览URL 不可访问、文件名异常、密码错误或登录态过期提示检查地址、文件名和密码,保留重新预览入口
PDF 文件泄露或占用空间文件长期保存在下载目录按项目规则限制访问并提供清理策略
电话未拨出号码为空、格式错误、系统限制或命令行为与预期不符提示检查号码,允许复制或手动拨号
RegId 为空或已失效推送未初始化、重新安装或包名配置变化重新读取并更新服务端绑定关系
震动 / 提示音无效设备不支持、系统静音、音量低或系统设置限制同时提供视觉反馈
广播无响应Action / Extra 不匹配、目标 APP 未安装显示已发送但无法确认结果,并提示检查配置
接收不到广播未开始监听、Action 不匹配、监听已停止允许重新监听并记录监听器 ID
广播重复回调外部程序重复发送、页面重复注册按业务键去重,离开页面时停止旧监听

兼容性与安全边界

  • 在项目测试记录中保存 HAC 版本、Android 版本、设备型号、厂商程序版本和插件版本;
  • 对电话、通知、文件和设备标识等能力,按目标 Android 版本确认权限和系统设置;
  • 普通浏览器只能走兼容流程,不能假定能够调用 HAC 的原生能力;
  • 设备唯一标识和 RegId 用于识别或推送绑定,不替代账号认证;
  • 需要高安全等级的业务,应结合账号、角色、时间、位置和服务端校验;
  • 广播参数和接收数据来自外部程序时,应校验来源、格式和业务范围。

验收标准

  1. 页面能通过【读取APP信息】区分 HAC 环境和普通浏览器环境。
  2. 每个命令都有明确的输入参数、输出位置或回调处理方式。
  3. PDF 预览能正确使用文件名、密码和下载地址,并能在失败时提示原因。
  4. 拨打电话、强制关闭 APP、发送广播等动作有明确入口和必要确认,不会被误触发。
  5. 广播监听页面能保存监听器注册 ID,并在离开页面或任务结束时停止监听。
  6. 震动和提示音有视觉反馈兜底,不会在高频流程中连续无限触发。
  7. 设备绑定和推送绑定能记录必要的 APP、设备、用户和更新时间信息,并能在解绑时清理关系。

本页目录