更新记录

1.0.0(2026-11-10) 下载此版本

  • 首次发布 PDA Android 广播扫码插件。
  • 支持配置广播 Action、扫码 Extra Key 和重复扫码去重时间窗。
  • 扫码 Extra 按字符串读取。

平台兼容性

uni-app(5.34)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android Android插件版本 iOS 鸿蒙
- - × × - - 8.0 1.0.0 - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × × ×

PDA 广播扫码

uni-app 插件,通过 App-Plus Android 动态广播接收 PDA 扫描服务发送的扫码结果。

平台支持

  • 支持:App-Plus Android。
  • 不支持:iOS、H5、小程序。
  • 扫码 Extra 按字符串读取,暂不支持 byte[]。
  • 设备必须配置为通过 Android 广播/Intent 输出扫码结果;键盘模拟等输出模式不适用。

安装

将 motuu-pda-broadcast 目录放入项目的 uni_modules 目录。也可通过 HBuilderX 插件市场导入。

使用

import {
  registerPdaBroadcast,
  unregisterPdaBroadcast,
  isBroadcastRegistered
} from '@/uni_modules/motuu-pda-broadcast/index.js'

const registered = registerPdaBroadcast({
  action: 'com.android.server.scannerservice.broadcast',
  extraKey: 'scannerdata',
  dedupeMs: 300,
  onScan(code) {
    console.log('扫码结果:', code)
  }
})

console.log('注册成功:', registered, isBroadcastRegistered())

// 页面或应用不再需要监听时调用
unregisterPdaBroadcast()

应用若要在多个页面间共享扫码结果,可自行将回调转发为 uni-app 全局事件:

import {
  PDA_SCAN_EVENT,
  registerPdaBroadcast
} from '@/uni_modules/motuu-pda-broadcast/index.js'

registerPdaBroadcast({
  onScan(code) {
    uni.$emit(PDA_SCAN_EVENT, { code, time: Date.now() })
  }
})

插件只负责调用 onScan,不会自动创建全局事件订阅或管理本地配置。应用离开使用场景时应注销接收器。

API

registerPdaBroadcast(options)

注册动态广播接收器。成功或已注册时返回 true;平台不支持、参数无效或原生注册失败时返回 false。重复调用不会重复创建接收器,也不会替换已注册回调;需要更换配置时先注销。

参数 类型 默认值 说明
action string com.android.server.scannerservice.broadcast 与设备扫描服务配置相同的广播 Action
extraKey string scannerdata 扫码字符串所在的 Intent Extra 字段
dedupeMs number 300 相同内容的去重时间窗,单位毫秒;0 表示关闭去重
onScan Function 必填 收到有效扫码内容时执行,参数为扫码字符串

扫码处理按顺序读取指定 Extra、Zebra DataWedge 字段 com.symbol.datawedge.data_string,以及 Intent data 字符串。空内容不会触发回调。

unregisterPdaBroadcast()

注销接收器并清理原生对象引用。可重复调用。

isBroadcastRegistered()

返回当前模块的广播接收器是否已注册。

resetDedupeState()

清空最近扫码内容及时间记录。

PDA_SCAN_EVENT

字符串常量 pda-scan,可供应用转发扫码回调为全局事件时使用。插件本身不会自动触发此事件。

设备配置

首次使用默认值为:

  • Action:com.android.server.scannerservice.broadcast
  • Extra Key:scannerdata
  • 去重窗口:300 毫秒

不同设备、固件和扫描服务设置可能不同,请以设备的扫描设置或厂商文档为准。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

使用 App-Plus Android 原生广播接收能力。

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件仅在应用内接收设备扫码广播,不会收集或上传数据。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

许可协议

MIT协议

暂无用户评论。