更新记录
4.1.0326(2026-01-19)
更新日志
1.0.0 (2026-01-18)
新增
- 初始版本发布
- 扫码功能 (ScanManager)
openScanner()- 打开扫码器closeScanner()- 关闭扫码器getScannerState()- 获取扫码器状态startDecode()- 开始扫码stopDecode()- 停止扫码setTriggerMode()- 设置触发模式(点扫/连续/脉冲)getTriggerMode()- 获取触发模式enableAllSymbologies()- 启用/禁用所有条码类型registerScanCallback()- 注册扫码回调unregisterScanCallback()- 注销扫码回调getLastScanResult()- 获取最后扫码结果clearLastScanResult()- 清除扫码结果
占位功能(待实现)
- 打印管理 (PrinterManager)
- 设备管理 (DeviceManager)
- IC卡管理 (IccManager)
- 非接卡管理 (PiccManager)
- 磁条卡管理 (MagManager)
兼容性
- 支持 uni-app (Vue2/Vue3)
- 支持 uni-app x
- 仅支持 Android 平台
- 需要 HBuilderX 3.6.0+
注意事项
- 回调函数存在生命周期限制,连续扫码建议使用链式重注册模式
- 需要打包自定义基座使用
平台兼容性
uni-app(3.6.15)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | Android插件版本 | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | 8.0 | 4.1.0326 | - | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - |
uni-app x(3.91)
| Chrome | Safari | Android | Android插件版本 | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|---|
| - | - | 8.0 | 4.1.0326 | - | - | - |
优博讯设备SDK (xt-device-sdk)
基于 UTS 插件封装的优博讯(UROVO) PDA 设备 SDK,支持 uni-app 和 uni-app x 项目。
兼容性
| 项目类型 | 最低版本 | 调用方式 |
|---|---|---|
| uni-app (Vue2) | HBuilderX 3.6.8+ | JS 调用 |
| uni-app (Vue3) | HBuilderX 3.6+ | JS 调用 |
| uni-app x | HBuilderX 3.9+ | UTS 调用 |
安装
将 xt-device-sdk 目录复制到项目的 uni_modules 目录下即可。
功能模块
已实现
- 扫码管理 (ScanManager) - 完整支持
待实现(占位)
- 打印管理 (PrinterManager)
- 设备管理 (DeviceManager)
- IC卡管理 (IccManager)
- 非接卡管理 (PiccManager)
- 磁条卡管理 (MagManager)
扫码功能 (ScanManager)
引入
// #ifdef APP-PLUS
import {
openScanner,
closeScanner,
getScannerState,
startDecode,
stopDecode,
registerScanCallback,
unregisterScanCallback,
setTriggerMode,
getTriggerMode,
enableAllSymbologies
} from '@/uni_modules/xt-device-sdk';
// #endif
API 列表
openScanner()
打开扫码器电源。
const success = openScanner();
// 返回: boolean - true 成功,false 失败
closeScanner()
关闭扫码器电源。
const success = closeScanner();
// 返回: boolean
getScannerState()
获取扫码器状态。
const isOpen = getScannerState();
// 返回: boolean - true 已开启,false 已关闭
startDecode()
开始扫码(触发一次扫码会话)。
startDecode();
stopDecode()
停止扫码。
stopDecode();
setTriggerMode(mode)
设置扫码触发模式。
| 参数值 | 说明 |
|---|---|
"HOST" |
点扫模式(默认),每次需手动触发 |
"CONTINUOUS" |
连续扫码模式,持续扫描 |
"PULSE" |
脉冲模式,按住扫描松开停止 |
setTriggerMode('CONTINUOUS'); // 设置为连续扫码
getTriggerMode()
获取当前触发模式。
const mode = getTriggerMode();
// 返回: "HOST" | "CONTINUOUS" | "PULSE"
enableAllSymbologies(enable)
启用或禁用所有条码类型。
enableAllSymbologies(true); // 启用所有条码类型
enableAllSymbologies(false); // 禁用所有条码类型
registerScanCallback(callback)
注册扫码结果回调。
注意:由于 UTS 回调函数生命周期限制,回调可能只执行一次。建议使用链式重注册模式(见下方示例)。
registerScanCallback((result) => {
console.log('条码:', result.barcode);
console.log('类型:', result.barcodeType);
console.log('长度:', result.barcodeLength);
});
ScanResult 结构:
type ScanResult = {
barcode: string; // 条码内容
barcodeHex: string; // 条码十六进制
barcodeType: number; // 条码类型
barcodeLength: number; // 条码长度
}
unregisterScanCallback()
注销扫码回调,释放资源。
unregisterScanCallback();
使用示例
基础扫码(点扫模式)
// 1. 打开扫码器
openScanner();
// 2. 启用所有条码类型
enableAllSymbologies(true);
// 3. 注册回调
registerScanCallback((result) => {
console.log('扫码结果:', result.barcode);
});
// 4. 触发扫码(或按设备扫码键)
startDecode();
// 5. 使用完毕后关闭
unregisterScanCallback();
closeScanner();
连续扫码模式(推荐方案)
由于 UTS 回调函数只能执行一次,连续扫码需使用链式重注册模式:
export default {
data() {
return {
scanListenerActive: false,
scanCount: 0
}
},
methods: {
// 开始连续扫码
startContinuousScan() {
openScanner();
enableAllSymbologies(true);
setTriggerMode('CONTINUOUS');
this.scanListenerActive = true;
this.scanCount = 0;
this.registerNextCallback();
startDecode();
},
// 链式注册回调
registerNextCallback() {
if (!this.scanListenerActive) return;
const self = this;
registerScanCallback((result) => {
self.scanCount++;
console.log(`[第${self.scanCount}次] 条码: ${result.barcode}`);
// 回调执行后立即注册下一个回调
setTimeout(() => {
self.registerNextCallback();
}, 10);
});
},
// 停止扫码
stopContinuousScan() {
this.scanListenerActive = false;
stopDecode();
unregisterScanCallback();
closeScanner();
}
},
onUnload() {
// 页面卸载时务必释放资源
this.scanListenerActive = false;
unregisterScanCallback();
}
}
操作流程
点扫模式
打开扫码器 → 注册回调 → 开始扫码/按扫码键 → 获取结果 → 注销回调 → 关闭扫码器
连续扫码模式
打开扫码器 → 注册回调 → 设置连续模式 → 开始扫码 → 持续获取结果 → 停止扫码 → 注销回调 → 关闭扫码器
注意事项
-
回调函数生命周期:UTS 插件的回调函数默认只能执行一次,连续扫码需使用链式重注册模式。
-
资源释放:页面卸载时务必调用
unregisterScanCallback()释放资源。 -
自定义基座:使用此插件需要打包自定义基座,标准基座不包含设备 SDK。
-
设备兼容性:仅支持优博讯(UROVO) PDA 设备。
更新日志
v1.0.0
- 初始版本
- 实现扫码功能完整支持
- 支持点扫、连续扫码、脉冲三种模式

收藏人数:
购买普通授权版(
试用
赞赏(0)
下载 0
赞赏 0
下载 13437494
赞赏 1845
赞赏
京公网安备:11010802035340号