Un nuevo complemento de flutter para ayudar a los desarrolladores que buscan utilizar hardware interno dentro de dispositivos iOS o Android para leer y escribir etiquetas NFC.
El sistema activa una sesión de lectura conjunta que se detiene automáticamente una vez que se ha reconocido una etiqueta. También puede activar el evento de parada manualmente utilizando una función dedicada.
Plataforma | Etiquetas NFC compatibles |
---|---|
Androide | NDEF: A, B, F, V, CÓDIGO DE BARRAS |
iOS | NDEF: NFC TIPO 1, 2, 3, 4, 5 |
Agregar a pubspec.yaml:
dependencias: flutter_nfc_reader: ^0.2.0
o para conseguir el experimental:
dependencias: flutter_nfc_reader:git: url: git://github.com/matteocrippa/flutter-nfc-reader.git ref: desarrollar
y luego ejecutar el shell
los paquetes flutter obtienen
Último paso de importación al proyecto:
importar 'paquete:flutter_nfc_reader/flutter_nfc_reader.dart';
Agregue esas dos líneas a su AndroidManifest.xml
en la parte superior
<usa-permiso android:name="android.permission.NFC" /> <uses-featureandroid:name="android.hardware.nfc"android:required="true" />
Asigne 19 en minSdkVersion en build.gradle (Module: app)
configuración predeterminada {... minSdkVersión 19... }
Solo se admiten proyectos Flutter basados en Swift
en cajeros automáticos.
Habilitar capacidades/lectura de etiquetas de comunicación de campo cercano.
Archivo Info.plist, agregue Privacidad - Descripción de uso de escaneo NFC con valor de cadena Etiqueta NFC.
En tu Podfile agrega este código en la parte superior
plataforma: ios, '8.0'use_frameworks!
Esta función devolverá una promesa cuando se produzca una lectura, hasta ese mismo momento la sesión de lectura esté abierta. La promesa devolverá un modelo NfcData
, este modelo contiene:
FlutterNfcReader.read()
y FlutterNfcReader.onTagDiscovered()
tienen un parámetro opcional, solo para iOS , llamado instruction
. Puede pasar una Cadena que contenga información que se mostrará en la pantalla modal.
id > id de la etiqueta
contenido > contenido de la etiqueta
error > si ocurre algún error
FlutterNfcReader.read().luego((respuesta) {imprimir(respuesta.content); });
esta función devolverá un Stream que emite NfcData
cada vez que se reconoce una etiqueta. En iOS también puedes usar esto, pero IOS siempre mostrará una hoja inferior cuando quiera escanear una etiqueta NFC. Por lo tanto, debes emitir explícitamente FlutterNfcReader.read()
cuando esperas un segundo valor. Al suscribirse a la transmisión, la función de lectura se llama por primera vez. Vea el ejemplo para ver una implementación de muestra.
FlutterNfcReader.onTagDiscovered().listen((onData) { print(onData.id); print(onData.content); });
Esta función devolverá una promesa cuando se produzca una escritura, hasta ese mismo momento la sesión de lectura esté abierta. La promesa devolverá un modelo NfcData
, este modelo contiene:
contenido > escrito en la etiqueta
FlutterNfcReader.write("path_prefix","etiqueta contenido").luego((respuesta) {print(respuesta.content); });
Puede leer y luego escribir en una etiqueta NFC utilizando las funciones anteriores de la siguiente manera
FlutterNfcReader.read().then((readResponse) {FlutterNfcReader.write(" ",readResponse.content).then((writeResponse) {print('escrito: ${writeResponse.content}'); }); });
estado > estado de lectura o escritura de ncf detenida
FlutterNfcReader.stop().luego((respuesta) {print(respuesta.status.toString()); });
Para obtener mejores detalles, consulte la aplicación de demostración.
Para verificar si el dispositivo es compatible con NFC o no, puede llamar a FlutterNfcReader.checkNFCAvailability()
. El método devuelve NFCAvailability.available
cuando NFC es compatible y habilitado, NFCAvailability.disabled
cuando NFC está deshabilitado (solo Android) y NFCAvailability.not_supported
cuando el hardware del usuario no es compatible con NFC.
IOS se comporta un poco diferente en términos de escaneo y escritura NFC.
Los identificadores de las etiquetas no son posibles en la implementación actual.
cada escaneo es visible para el usuario con una hoja inferior
Para obtener ayuda para comenzar con Flutter, consulte nuestra documentación en línea.
Para obtener ayuda sobre cómo editar el código del complemento, consulte la documentación.
Primero, eche un vistazo rápido a las pautas de contribución. Si ve un paquete o proyecto aquí que ya no se mantiene o no encaja bien, envíe una solicitud de extracción para mejorar este archivo. ¡¡Gracias a todos los contribuyentes!!
para desarrollar en ios necesitas activar el sistema de compilación "heredado" debido a este problema en flutter:
aleteo/aleteo#20685