原生蓝牙 (BLE)
在移动端原生应用中接入 UKey Wallet 时,可以让 @ukeyfe/hardware-common-connect-sdk 继续负责上层硬件调用,再由 Android、iOS 或 Flutter 侧的 BLE 能力完成数据收发。JavaScript 代码可以运行在 WebView,也可以运行在应用内嵌的 JS 引擎中。
这页作为原生 BLE 的索引页,用来把不同平台的实现路线快速分流到对应指南。
适用原生BLE
- 应用本身是 Android、iOS 或 Flutter 项目,并且可以嵌入 WebView 或 JS 运行时。
- 你需要控制系统蓝牙权限、设备配对、扫描列表或原生确认弹窗等体验细节。
- 你希望业务层保留统一的 SDK 调用风格,同时把传输能力交给原生 BLE 实现。
平台表
| 平台 | 关注点 | 说明页 |
|---|---|---|
| Android | Nordic BLE、权限声明、设备配对和 JS Bridge | 安卓原生蓝牙 |
| iOS | CoreBluetooth、配对辅助和事件转发 | iOS原生蓝牙 |
| Flutter | Flutter 资源加载、插件封装和原生桥接 | Flutter原生蓝牙 |
跨平台 React Native 项目可以直接走 RN 蓝牙 这条路线。
核心要点
- 先了解 传输插件(Low-level),尤其是 64 字节帧和消息重组规则。
- 尽早接入
UI_EVENT,否则 PIN、Passphrase 或设备确认步骤可能让请求停在等待状态。 - Web 与原生 BLE 可以复用同一套上层 SDK 调用;原生层只需要稳定完成设备枚举、连接、写入、通知转发和断开。