flutter_nfc_reader

Creator: coderz1093

Last updated:

Add to Cart

Description:

flutter nfc reader

Flutter NFC Reader & Writer #

A new flutter plugin to help developers looking to use internal hardware inside iOS or Android devices for reading and writing NFC tags.
The system activate a pooling reading session that stops automatically once a tag has been recognised.
You can also trigger the stop event manually using a dedicated function.
Supported NFC Format #



Platform
Supported NFC Tags




Android
NDEF: A, B, F, V, BARCODE


iOS
NDEF: NFC TYPE 1, 2, 3, 4, 5



Only Android supports nfc tag writing #
Installation #
Add to pubspec.yaml:
dependencies:
flutter_nfc_reader:
git:
url: git://github.com/matteocrippa/flutter-nfc-reader.git
ref: master
copied to clipboard
and then run the shell
flutter packages get
copied to clipboard
last step import to the project:
import 'package:flutter_nfc_reader/flutter_nfc_reader.dart';
copied to clipboard
How to use #
Android setup #
Add those two lines to your AndroidManifest.xml on the top
<uses-permission android:name="android.permission.NFC" />
<uses-feature
android:name="android.hardware.nfc"
android:required="true" />
copied to clipboard
Assign 18 in minSdkVersion in the build.gradle (Module: app)
defaultConfig {
...
minSdkVersion 18
...
}
copied to clipboard
iOS Setup #
Atm only Swift based Flutter project are supported.

Enable Capabilities / Near Field Communication Tag Reading.
Info.plist file, add Privacy - NFC Scan Usage Description with string value NFC Tag.

In your Podfile add this code in the top
platform :ios, '8.0'
use_frameworks!
copied to clipboard
Read NFC #
This function will return a promise when a read occurs, till that very moment the reading session is open.
The promise will return a NfcData model, this model contains:

id > id of the tag
content > content of the tag
error > if any error occurs

FlutterNfcReader.read().then((response) {
print(response.content);
});
copied to clipboard
Stream NFC #
this function will return a Stream that emits NfcData everytime a tag is recognized. On Ios you can use this too but IOS will always show a bottom sheet when it wants to scan a NFC Tag. Therefore you need to explicitly cast FlutterNfcReader.read() when you expect a second value. When subscribing to the stream the read function is called a first time for you. View the Example for a sample implementation.
FlutterNfcReader.onTagDiscovered().listen((onData) {
print(onData.id);
print(onData.content);
});
copied to clipboard
Write NFC (Only Android) #
This function will return a promise when a write occurs, till that very moment the reading session is open.
The promise will return a NfcData model, this model contains:

content > writed in the tag

FlutterNfcReader.write("path_prefix","tag content").then((response) {
print(response.content);
});
copied to clipboard
Read & Write NFC (Only Android) #
You can read and then write in an nfc tag using the above functions as follows
FlutterNfcReader.read().then((readResponse) {
FlutterNfcReader.write(" ",readResponse.content).then((writeResponse) {
print('writed: ${writeResponse.content}');
});
});
copied to clipboard
Stop NFC #

status > status of ncf reading or writing stoped

FlutterNfcReader.stop().then((response) {
print(response.status.toString());
});
copied to clipboard
For better details look at the demo app.
IOS Specifics #
IOS behaves a bit different in terms of NFC Scanning and writing.

Ids of the tags aren't possible in the current implementation
each scan is visible for the user with a bottom sheet

Getting Started #
For help getting started with Flutter, view our online
documentation.
For help on editing plugin code, view the documentation.
Contributing #
Please take a quick look at the contribution guidelines first. If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file.
Thank you to all contributors!!
to develop on ios you need to activate the "legacy" build system because of this issue in flutter:
https://github.com/flutter/flutter/issues/20685

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files:

Customer Reviews

There are no reviews.