更新记录
1.0(2026-11-04) 下载此版本
firt commit
平台兼容性
销秘录音卡 BLE 管理插件(aiera-pnode)
概述
iOS 原生 BLE 插件,用于扫描、连接和管理销秘 CB08 录音卡设备。基于 PNode 协议实现,支持文件传输、设备状态读取和 OTA 升级。
环境要求
| 项目 | 要求 |
|---|---|
| 最低 iOS 版本 | 12.0 |
| 支持架构 | arm64 |
| 依赖系统框架 | CoreBluetooth.framework、UIKit.framework、Security.framework |
| 依赖系统库 | libz.tbd、libc++.tbd |
| 蓝牙硬件 | 需要(BLE 4.0+) |
权限列表
| 权限 | Info.plist 键 | 用途 |
|---|---|---|
| 蓝牙使用 | NSBluetoothAlwaysUsageDescription |
扫描/连接录音卡设备 |
| 蓝牙外设 | NSBluetoothPeripheralUsageDescription |
与录音卡通信(iOS 12 兼容) |
示例 Info.plist 配置:
<key>NSBluetoothAlwaysUsageDescription</key>
<string>连接销秘录音卡设备,同步录音文件</string>
JS 接口
获取插件实例
const pnode = uni.requireNativePlugin('aiera-pnode')
1. init(options, callback) — 初始化
初始化 BLE 连接,建立保活事件流。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| options | Object | 是 | 保留参数(可传空对象) |
| callback | Function | 是 | 保活回调,持续接收设备事件 |
callback 事件格式:
{ event: 'deviceFound', data: { name: 'CB08-xxxx', rssi: -65, ... } }
{ event: 'connected', data: { name: 'CB08-xxxx' } }
{ event: 'disconnected', data: { reason: '...' } }
{ event: 'fileList', data: { files: [...] } }
{ event: 'transferProgress', data: { percent: 50, ... } }
{ event: 'transferComplete', data: { fileId: '...' } }
示例:
pnode.init({}, event => {
console.log('BLE 事件:', event.event, event.data)
})
2. call(options, callback) — 命令分发
执行一次性 BLE 命令。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| options.method | String | 是 | 命令名称 |
| options.args | Object | 否 | 命令参数 |
| callback | Function | 是 | 结果回调(一次性) |
支持的命令:
| 命令 | 参数 | 说明 |
|---|---|---|
scan |
{ duration: 10000 } |
扫描设备 |
stopScan |
— | 停止扫描 |
connect |
{ deviceId: '...' } |
连接设备 |
disconnect |
— | 断开连接 |
getFileList |
— | 获取设备文件列表 |
readFile |
{ fileId: '...' } |
读取文件内容 |
deleteFile |
{ fileId: '...' } |
删除设备文件 |
getDeviceInfo |
— | 读取设备信息(电量/序列号/固件版本) |
startOta |
{ firmwareUrl: '...' } |
开始 OTA 升级 |
示例:
// 扫描设备
pnode.call({ method: 'scan', args: { duration: 10000 } }, result => {
if (result.error) { console.error(result.error); return }
console.log('扫描完成:', result.data)
})
// 连接设备
pnode.call({ method: 'connect', args: { deviceId: 'CB08-12345' } }, result => {
if (result.error) { console.error(result.error); return }
console.log('已连接')
})
3. dispose(options, callback) — 销毁
断开 BLE 连接并释放资源。
pnode.dispose({}, () => { console.log('已销毁') })
错误码
| 错误码 | 说明 |
|---|---|
NOT_INIT |
未调用 init |
BLE_UNAVAILABLE |
设备蓝牙不可用 |
SCAN_TIMEOUT |
扫描超时 |
CONNECT_FAILED |
连接失败 |
TRANSFER_FAILED |
文件传输失败 |
CRC_MISMATCH |
数据校验失败 |
NOT_CONNECTED |
设备未连接 |
注意事项
- 必须先调用
init()再调用call() init的 callback 是保活回调,会持续接收事件直到dispose- BLE 操作需要在主线程发起
- iOS 13+ 需要用户授权蓝牙权限
- 建议在页面
onUnload时调用dispose()释放资源
更新日志
v1.0.0
- 初始版本
- 支持扫描/连接/文件传输/OTA 升级
- 支持 CB08 录音卡 PNode 协议

收藏人数:
下载插件并导入HBuilderX
赞赏(0)
下载 0
赞赏 0
下载 12742646
赞赏 1959
赞赏
京公网安备:11010802035340号