更新记录

1.0.1(2025-11-01) 下载此版本

修复了自动扫码没反应,挂载失败的问题

1.0.0(2025-11-01) 下载此版本

初次发布


平台兼容性

uni-app(4.0)

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

其他

多语言 暗黑模式 宽屏模式

xc-pdaScanner

UniApp PDA设备广播扫码插件,无需手动配置广播参数,自动适配主流PDA品牌,开箱即用。

一、插件介绍

核心特性

  • 自动适配:支持斑马(Zebra)、霍尼韦尔(Honeywell)、优博讯(Urovo)、新大陆(Newland)等10+主流PDA品牌,同时支持自行添加PDA配置。
  • 无配置化:无需手动设置广播Action和ExtraKey,插件自动匹配预设配置。
  • 轻量独立:不依赖App全局数据,组件化封装,引入即可使用。
  • 状态反馈:提供扫码结果和监听状态回调,方便业务处理。

支持平台

仅支持 Android App端(PDA设备主流系统),不支持H5、小程序、iOS。

二、安装方法

方法1:插件市场安装(推荐)

  1. 打开HBuilderX,进入项目 → 右键“插件市场” → “安装插件”。
  2. 搜索“xc-pdaScanner”,点击安装并导入项目。

方法2:手动安装

  1. 下载插件压缩包,解压后将components/xc-pdaScannerutils/pdaScanner.js复制到项目对应目录。
  2. 确保文件路径:
    • 组件:/components/xc-pdaScanner/xc-pdaScanner.vue
    • 工具类:/utils/pdaScanner.js

三、使用示例

1. 基础使用(自动启动监听)

<template>
  <view>
    <text>扫码结果:{{ scanResult }}</text>
    <!-- 引入组件 -->
    <xc-pdaScanner 
      @scan-success="onScanSuccess" 
      @status-change="onStatusChange"
    ></xc-pdaScanner>
  </view>
</template>

<script>

export default {
  data() {
    return {
      scanResult: ''
    };
  },
  methods: {
    // 扫码成功回调
    onScanSuccess(scanData) {
      this.scanResult = scanData;
      console.log('扫码结果:', scanData);
    },
    // 状态变化回调(如“开启监听”“关闭监听”)
    onStatusChange(status) {
      console.log('监听状态:', status);
      // 可选:显示用户提示
      // uni.showToast({ title: status, icon: 'none' });
    }
  }
};
</script>

2. 手动控制监听(关闭自动启动)

<template>
    <view>
        <button @click="startListen" :disabled="isListening">启动监听</button>
        <button @click="stopListen" :disabled="!isListening">停止监听</button>

        <view>
            扫码结果:{{this.scanData}}
        </view>
        <xc-pdaScanner :autoStart="false" @scan-success="onScanSuccess" @status-change="onStatusChange"
            ref="scanComponent"></xc-pdaScanner>
    </view>
</template>

<script>
    export default {
        data() {
            return {
                isListening: false,
                scanData: ''
            };
        },
        methods: {
            async startListen() {
                const component = this.$refs.scanComponent;
                await component.startListen();
            },
            stopListen() {
                const component = this.$refs.scanComponent;
                component.stopListen();
                this.scanData='';
            },
            onScanSuccess(scanData) {
                console.log('扫码结果:', scanData);
                this.scanData = scanData;
            },
            onStatusChange(status) {
                this.isListening = status.includes('已开启');
            }
        }
    };
</script>

四、API 说明

1. 组件 Props
    参数名      类型  默认值     说明
    autoStart   Boolean  true    页面显示时是否自动启动监听
2. 组件事件
    事件名              说明                 回调参数
    scan-success    扫码成功时触发             scanData: 扫码结果字符串
    status-change   监听状态变化时触发(如启停)  status: 状态描述文本
3. 组件方法(需通过ref调用)
    方法名       说明            返回值
    startListen 手动启动监听    Promise<boolean>:true = 启动成功
    stopListen  手动停止监听    无

五、注意事项

权限要求:
    无需额外权限(插件内部已处理 PDA 广播监听所需权限)。
    若部分设备提示 “无权限”,需在manifest.json中添加:
    xml
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

设备兼容性:
    仅支持 Android PDA 设备(不支持ios PDA设备),普通手机(如小米、华为)会提示 “普通设备,不开启广播扫码”。
    若未知品牌 PDA 无法使用,可联系作者补充预设配置。

缓存重置:
    若动态切换设备(如 USB 连接不同 PDA),可调用工具类的resetPdaDetectCache()重置检测缓存:
    javascript
    运行
    import { resetPdaDetectCache } from '@/utils/pdaScanner.js';
    resetPdaDetectCache(); // 重置后需重新调用isPDA()检测

六、版本更新日志

版本:1.0.1
日期:2025-11-01     
更新内容:初始版本,支持 10 + 主流 PDA 品牌,符合uni_modules规范

七、插件目录结构说明

```
xc-pdaScanner/  # 插件根目录
├─ components/            # 核心组件
│  └─ xc-pdaScanner/
│     └─ xc-pdaScanner.vue
├─ utils/                 # 工具类
│  └─ xc-pdaScanner.js
├─ package.json           # 插件配置
└─ README.md              # 使用文档
```

隐私、权限声明

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

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

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

插件不采集任何数据

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

许可协议

MIT协议

暂无用户评论。