更新记录

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 设备未连接

注意事项

  1. 必须先调用 init() 再调用 call()
  2. init 的 callback 是保活回调,会持续接收事件直到 dispose
  3. BLE 操作需要在主线程发起
  4. iOS 13+ 需要用户授权蓝牙权限
  5. 建议在页面 onUnload 时调用 dispose() 释放资源

更新日志

v1.0.0

  • 初始版本
  • 支持扫描/连接/文件传输/OTA 升级
  • 支持 CB08 录音卡 PNode 协议

隐私、权限声明

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

| 蓝牙使用 | `NSBluetoothAlwaysUsageDescription` | 扫描/连接录音卡设备 | | 蓝牙外设 | `NSBluetoothPeripheralUsageDescription` | 与录音卡通信(iOS 12 兼容) |

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

插件不采集任何数据

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

无

许可协议

MIT协议

暂无用户评论。