Ein neues Flatter-Plugin, das Entwicklern hilft, interne Hardware in iOS- oder Android-Geräten zum Lesen und Schreiben von NFC-Tags zu verwenden.
Das System aktiviert eine Pooling-Lesesitzung, die automatisch beendet wird, sobald ein Tag erkannt wurde. Sie können das Stoppereignis auch manuell über eine spezielle Funktion auslösen.
Plattform | Unterstützte NFC-Tags |
---|---|
Android | NDEF: A, B, F, V, BARCODE |
iOS | NDEF: NFC-TYP 1, 2, 3, 4, 5 |
Zu pubspec.yaml hinzufügen:
Abhängigkeiten: flutter_nfc_reader: ^0.2.0
oder um das experimentelle zu bekommen:
Abhängigkeiten: flutter_nfc_reader:git: URL: git://github.com/matteocrippa/flutter-nfc-reader.git ref: entwickeln
und dann die Shell ausführen
Flatterpakete bekommen
letzter Schritt Import in das Projekt:
import 'package:flutter_nfc_reader/flutter_nfc_reader.dart';
Fügen Sie diese beiden Zeilen oben zu Ihrer AndroidManifest.xml
hinzu
<uses-permission android:name="android.permission.NFC" /> <uses-featureandroid:name="android.hardware.nfc"android:required="true" />
Weisen Sie 19 in minSdkVersion im build.gradle (Module: app)
defaultConfig {... minSdkVersion 19... }
Es werden nur Swift
basierte Flutter-Projekte unterstützt.
Aktivieren Sie Funktionen/Lesen von Nahfeldkommunikations-Tags.
Fügen Sie in der Datei „Info.plist“ „Datenschutz – NFC-Scan-Nutzungsbeschreibung“ mit dem Zeichenfolgenwert „NFC-Tag“ hinzu.
Fügen Sie diesen Code oben in Ihre Poddatei ein
Plattform :ios, '8.0'use_frameworks!
Diese Funktion gibt ein Versprechen zurück, wenn ein Lesevorgang erfolgt, bis die Lesesitzung geöffnet ist. Das Versprechen gibt ein NfcData
-Modell zurück. Dieses Modell enthält:
FlutterNfcReader.read()
und FlutterNfcReader.onTagDiscovered()
verfügen nur für iOS über einen optionalen Parameter namens instruction
. Sie können einen String übergeben, der Informationen enthält, die im modalen Bildschirm angezeigt werden sollen.
id > ID des Tags
Inhalt > Inhalt des Tags
Fehler > wenn ein Fehler auftritt
FlutterNfcReader.read().then((response) {print(response.content); });
Diese Funktion gibt einen Stream zurück, der NfcData
jedes Mal ausgibt, wenn ein Tag erkannt wird. Auf Ios können Sie dies auch verwenden, aber IOS zeigt immer ein unteres Blatt an, wenn ein NFC-Tag gescannt werden soll. Daher müssen Sie FlutterNfcReader.read()
explizit umwandeln, wenn Sie einen zweiten Wert erwarten. Beim Abonnieren des Streams wird die Lesefunktion zum ersten Mal für Sie aufgerufen. Sehen Sie sich das Beispiel für eine Beispielimplementierung an.
FlutterNfcReader.onTagDiscovered().listen((onData) { print(onData.id); print(onData.content); });
Diese Funktion gibt ein Versprechen zurück, wenn ein Schreibvorgang erfolgt, bis die Lesesitzung geöffnet ist. Das Versprechen gibt ein NfcData
-Modell zurück. Dieses Modell enthält:
Inhalt > im Tag geschrieben
FlutterNfcReader.write("path_prefix","tag content").then((response) {print(response.content); });
Sie können einen NFC-Tag mit den oben genannten Funktionen wie folgt lesen und anschließend einschreiben
FlutterNfcReader.read().then((readResponse) {FlutterNfcReader.write(" ",readResponse.content).then((writeResponse) {print('writed: ${writeResponse.content}'); }); });
Status > Status des NCF-Lesens oder Schreibens gestoppt
FlutterNfcReader.stop().then((response) {print(response.status.toString()); });
Weitere Details finden Sie in der Demo-App.
Um zu überprüfen, ob das Gerät NFC unterstützt oder nicht, können Sie FlutterNfcReader.checkNFCAvailability()
aufrufen. Die Methode gibt NFCAvailability.available
zurück, wenn NFC unterstützt und aktiviert ist, NFCAvailability.disabled
, wenn NFC deaktiviert ist (nur Android) und NFCAvailability.not_supported
wenn die Hardware des Benutzers NFC nicht unterstützt.
IOS verhält sich beim NFC-Scannen und -Schreiben etwas anders.
IDs der Tags sind in der aktuellen Implementierung nicht möglich
Jeder Scan ist für den Benutzer mit einem unteren Blatt sichtbar
Wenn Sie Hilfe beim Einstieg in Flutter benötigen, sehen Sie sich unsere Online-Dokumentation an.
Hilfe zum Bearbeiten des Plugin-Codes finden Sie in der Dokumentation.
Bitte werfen Sie zunächst einen kurzen Blick auf die Beitragsrichtlinien. Wenn Sie hier ein Paket oder Projekt sehen, das nicht mehr gepflegt wird oder nicht gut passt, senden Sie bitte einen Pull-Request, um diese Datei zu verbessern. Vielen Dank an alle Mitwirkenden!!
Um auf iOS zu entwickeln, müssen Sie aufgrund dieses Problems in Flutter das „Legacy“-Build-System aktivieren:
Flattern/Flattern#20685