Un nouveau plugin Flutter pour aider les développeurs cherchant à utiliser du matériel interne dans les appareils iOS ou Android pour lire et écrire des balises NFC.
Le système active une session de lecture mutualisée qui s'arrête automatiquement une fois qu'un tag est reconnu. Vous pouvez également déclencher l'événement d'arrêt manuellement à l'aide d'une fonction dédiée.
Plate-forme | Balises NFC prises en charge |
---|---|
Androïde | NDEF : A, B, F, V, CODE À BARRES |
IOS | NDEF : NFC TYPE 1, 2, 3, 4, 5 |
Ajouter à pubspec.yaml :
dépendances : flutter_nfc_reader : ^0.2.0
ou pour obtenir l'expérimental :
dépendances : flutter_nfc_reader:git : url : git://github.com/matteocrippa/flutter-nfc-reader.git ref : développer
puis exécutez le shell
les paquets Flutter obtiennent
dernière étape d'importation dans le projet :
importer 'package:flutter_nfc_reader/flutter_nfc_reader.dart' ;
Ajoutez ces deux lignes à votre AndroidManifest.xml
en haut
<uses-permission android:name="android.permission.NFC" /> <uses-featureandroid:name="android.hardware.nfc"android:required="true" />
Attribuez 19 dans minSdkVersion dans le build.gradle (Module: app)
configuration par défaut {... minSdkVersion 19... }
Seuls les projets Flutter basés sur Swift
sont pris en charge.
Activer les capacités/lecture des balises de communication en champ proche.
Fichier Info.plist, ajoutez Confidentialité - Description de l'utilisation de l'analyse NFC avec la valeur de chaîne NFC Tag.
Dans votre Podfile, ajoutez ce code en haut
plateforme :ios, '8.0'use_frameworks !
Cette fonction renverra une promesse lorsqu'une lecture aura lieu, jusqu'à ce que la session de lecture soit ouverte. La promesse renverra un modèle NfcData
, ce modèle contient :
FlutterNfcReader.read()
et FlutterNfcReader.onTagDiscovered()
ont un paramètre facultatif, uniquement pour iOS , appelé instruction
. Vous pouvez transmettre une chaîne contenant des informations à afficher dans l'écran modal.
id > identifiant de la balise
contenu > contenu de la balise
erreur > si une erreur se produit
FlutterNfcReader.read().then((response) {print(response.content); });
cette fonction renverra un Stream qui émet NfcData
à chaque fois qu'une balise est reconnue. Sur Ios, vous pouvez également l'utiliser, mais IOS affichera toujours une feuille inférieure lorsqu'il souhaite numériser une balise NFC. Par conséquent, vous devez lancer explicitement FlutterNfcReader.read()
lorsque vous attendez une deuxième valeur. Lors de votre inscription au flux, la fonction de lecture est appelée une première fois pour vous. Consultez l'exemple pour un exemple d'implémentation.
FlutterNfcReader.onTagDiscovered().listen((onData) { print(onData.id); print(onData.content); });
Cette fonction renverra une promesse lorsqu'une écriture se produit, jusqu'à ce que la session de lecture soit ouverte. La promesse renverra un modèle NfcData
, ce modèle contient :
contenu > écrit dans la balise
FlutterNfcReader.write("path_prefix","tag content").then((response) {print(response.content); });
Vous pouvez lire puis écrire dans une balise nfc en utilisant les fonctions ci-dessus comme suit
FlutterNfcReader.read().then((readResponse) {FlutterNfcReader.write(" ",readResponse.content).then((writeResponse) {print('writed: ${writeResponse.content}'); }); });
status > état de la lecture ou de l'écriture ncf arrêtée
FlutterNfcReader.stop().then((response) {print(response.status.toString()); });
Pour plus de détails, consultez l'application de démonstration.
Afin de vérifier si l'appareil prend en charge NFC ou non, vous pouvez appeler FlutterNfcReader.checkNFCAvailability()
. La méthode renvoie NFCAvailability.available
lorsque NFC est pris en charge et activé, NFCAvailability.disabled
lorsque NFC est désactivé (Android uniquement) et NFCAvailability.not_supported
lorsque le matériel de l'utilisateur ne prend pas en charge NFC.
IOS se comporte un peu différemment en termes de numérisation et d'écriture NFC.
Les identifiants des balises ne sont pas possibles dans l'implémentation actuelle
chaque numérisation est visible pour l'utilisateur avec une feuille inférieure
Pour obtenir de l'aide pour démarrer avec Flutter, consultez notre documentation en ligne.
Pour obtenir de l'aide sur la modification du code du plugin, consultez la documentation.
Veuillez d'abord jeter un coup d'œil rapide aux directives de contribution. Si vous voyez ici un package ou un projet qui n'est plus maintenu ou qui ne convient pas, veuillez soumettre une pull request pour améliorer ce fichier. Merci à tous les contributeurs !!
pour développer sur iOS, vous devez activer le système de build "hérité" en raison de ce problème dans Flutter :
flottement/battement#20685