Flutter: Connect via Bluetooth

For Flutter apps that load a JS bundle via WebView or a JS engine and bridge to @onekeyfe/hd-common-connect-sdk using a low-level adapter.

Step 1. Choose a runtime

  • WebView: stable and broadly supported; bridge API identical to iOS/Android native shells

  • JS engine: e.g. flutter_js, run the built JS bundle directly in Dart

Step 2. Build the JS bundle

Build in the native examples under the hardware-js-sdk repository (see web/ directories) and produce web_dist/ assets.

Step 3. Load the JS bundle

Load the web_dist/ assets in Flutter (either via WebView or a JS engine).

Step 4. Implement the messaging bridge

Expose enumerate/connect/disconnect/send/receive from native to JS, keeping the same signatures. Forward 64โ€‘byte BLE notification chunks and reassemble hex payloads for receive() on JS.

Step 5. Handle UI events

Show native dialogs for PIN/Passphrase/confirmations and respond via HardwareSDK.uiResponse.

BLE UUIDs

  • serviceUuid = 00000001-0000-1000-8000-00805f9b34fb

  • writeCharacteristic = 00000002-0000-1000-8000-00805f9b34fb

  • notifyCharacteristic = 00000003-0000-1000-8000-00805f9b34fb

References

Once wired, the chain API usage is identical to WebUSB: provide connectId and (when required) deviceId.

Last updated

Was this helpful?