Auf dieser Seite
Flutter: Über Bluetooth verbinden (nativ)
Diese Anleitung baut auf dem Low-Level-Transport-Plugin für die BLE-Ein-/Ausgabeschnittstelle und die Protocol-V1-/V2-Grenzen auf — lesen Sie dies zuerst.
Für Flutter-Apps, die ein JS-Bundle über WebView oder eine JS-Engine laden und überbrücken zu @onekeyfe/hd-common-connect-sdk mithilfe eines Low-Level-Adapters.
Schritt 1. Laufzeit wählen
- WebView: stabil und breit unterstützt; Bridge-API identisch mit nativen iOS-/Android-Hüllen
- JS-Engine: z. B.
flutter_js, das erstellte JS-Bundle direkt in Dart ausführen
Schritt 2. JS-Bundle erstellen
In den nativen Beispielen im hardware-js-sdk-Repository erstellen (siehe web/-Verzeichnisse) und erzeugen: web_dist/-Assets.
Schritt 3. JS-Bundle laden
Laden Sie die web_dist/-Assets in Flutter (über WebView oder eine JS-Engine).
Schritt 4. Nachrichten-Bridge implementieren
Stellen Sie enumerate/connect/disconnect/send/receive von nativem Code für JS bereit und behalten Sie dieselben Signaturen bei. Leiten Sie unveränderte BLE-Benachrichtigungsblöcke als Hex in eine verbindungsspezifische Warteschlange weiter, aus der receive(uuid) liest. Das SDK übernimmt V1-/V2-Rahmung und Zusammensetzung.
Schritt 5. UI-Ereignisse behandeln
Zeigen Sie native Dialoge für Eingabeanfragen und Anweisungen für Geräteaufforderungen an. Nur Eingabeanfragen erhalten HardwareSDK.uiResponse; behalten Sie ihre Antwortzuordnung bei. Tastenbestätigungen und reine Geräte-PIN-Aufforderungen sind Benachrichtigungen. Siehe UI-Anbindung.
BLE-UUIDs
serviceUuid = 00000001-0000-1000-8000-00805f9b34fbwriteCharacteristic = 00000002-0000-1000-8000-00805f9b34fbnotifyCharacteristic = 00000003-0000-1000-8000-00805f9b34fb
Referenzen
- Protokollrahmung: Siehe Low-Level-Transport-Plugin
- UI-Ereignisse: Ereignisse, PIN, Passphrase
- Plattformdetails: iOS BLE, Android BLE
Nach der Anbindung ist die Verwendung der Chain-API identisch mit WebUSB: Geben Sie connectId und (falls erforderlich) deviceId an.