跳到主要内容

原生蓝牙 (BLE)

在移动端原生应用中接入 UKey Wallet 时,可以让 @ukeyfe/hardware-common-connect-sdk 继续负责上层硬件调用,再由 Android、iOS 或 Flutter 侧的 BLE 能力完成数据收发。JavaScript 代码可以运行在 WebView,也可以运行在应用内嵌的 JS 引擎中。

这页作为原生 BLE 的索引页,用来把不同平台的实现路线快速分流到对应指南。

适用原生BLE

  • 应用本身是 Android、iOS 或 Flutter 项目,并且可以嵌入 WebView 或 JS 运行时。
  • 你需要控制系统蓝牙权限、设备配对、扫描列表或原生确认弹窗等体验细节。
  • 你希望业务层保留统一的 SDK 调用风格,同时把传输能力交给原生 BLE 实现。

平台表

平台关注点说明页
AndroidNordic BLE、权限声明、设备配对和 JS Bridge安卓原生蓝牙
iOSCoreBluetooth、配对辅助和事件转发iOS原生蓝牙
FlutterFlutter 资源加载、插件封装和原生桥接Flutter原生蓝牙

跨平台 React Native 项目可以直接走 RN 蓝牙 这条路线。

核心要点

  • 先了解 传输插件(Low-level),尤其是 64 字节帧和消息重组规则。
  • 尽早接入 UI_EVENT,否则 PIN、Passphrase 或设备确认步骤可能让请求停在等待状态。
  • Web 与原生 BLE 可以复用同一套上层 SDK 调用;原生层只需要稳定完成设备枚举、连接、写入、通知转发和断开。