Flutter NFC Reader
一款新的 Flutter 插件,旨在帮助开发者使用 iOS 或 Android 设备中的内部硬件读取 NFC 标签。
该系统会激活一个轮询读取会话,一旦识别到标签就会自动停止。您也可以使用专用函数手动触发停止事件。
安装
添加到 pubspec.yaml
dependencies:
flutter_nfc_reader:
git:
url: git://github.com/matteocrippa/flutter-nfc-reader.git
ref: master
然后运行shell
flutter packages get
最后一步,导入到项目中
import 'package:flutter_nfc_reader/flutter_nfc_reader.dart';
如何使用
Android 设置
将这两行添加到您的 AndroidManifest.xml 文件顶部
<uses-permission android:name="android.permission.NFC" />
<uses-feature
android:name="android.hardware.nfc"
android:required="true" />
iOS 设置
目前仅支持基于 Swift 的 Flutter 项目。
- 启用功能 / 近场通信标签读取。
- Info.plist 文件,添加 Privacy - NFC Scan Usage Description,值为 NFC Tag。
读取 NFC
此函数将在发生读取时返回一个 Promise,在那之前读取会话一直保持打开状态。
Promise 将返回一个 NfcData 模型,该模型包含:
- id > 标签的 ID
- content > 标签的内容
- error > 如果发生任何错误
Future<void> startNFC() async {
NfcData response;
setState(() {
_nfcData = NfcData();
_nfcData.status = NFCStatus.reading;
});
print('NFC: Scan started');
try {
print('NFC: Scan readed NFC tag');
response = await FlutterNfcReader.read;
} on PlatformException {
print('NFC: Scan stopped exception');
}
setState(() {
_nfcData = response;
});
}
停止 NFC
Future<void> stopNFC() async {
NfcData response;
try {
print('NFC: Stop scan by user');
response = await FlutterNfcReader.stop;
} on PlatformException {
print('NFC: Stop scan exception');
response = NfcData(
id: '',
content: '',
error: 'NFC scan stop exception',
statusMapper: '',
);
response.status = NFCStatus.error;
;
}
setState(() {
_nfcData = response;
});
}
更多详细信息请查看演示应用。