Новый плагин Flutter, который поможет разработчикам, желающим использовать внутреннее оборудование устройств iOS или Android для чтения и записи тегов NFC.
Система активирует сеанс группового чтения, который автоматически прекращается после распознавания тега. Вы также можете запустить событие остановки вручную, используя специальную функцию.
Платформа | Поддерживаемые теги NFC |
---|---|
Андроид | NDEF: A, B, F, V, ШТРИХ-КОД |
iOS | NDEF: NFC ТИП 1, 2, 3, 4, 5 |
Добавьте в pubspec.yaml:
зависимости: flutter_nfc_reader: ^0.2.0
или получить экспериментальный вариант:
зависимости: flutter_nfc_reader:git: URL: git://github.com/matteocrippa/flutter-nfc-reader.git ref: development
а затем запустите оболочку
флаттер-пакеты получают
последний шаг импорта в проект:
импортировать «пакет: flutter_nfc_reader/flutter_nfc_reader.dart»;
Добавьте эти две строки в свой AndroidManifest.xml
вверху.
<uses-permission android:name="android.permission.NFC" /> <uses-featureandroid:name="android.hardware.nfc"android:required="true" />
Назначьте 19 в minSdkVersion в build.gradle (Module: app)
конфигурация по умолчанию {... minSdkВерсия 19... }
Поддерживаются только проекты Flutter на основе Swift
.
Включите возможности/чтение тегов связи ближнего радиуса действия.
В файле Info.plist добавьте «Конфиденциальность — описание использования сканирования NFC» со строковым значением тега NFC.
В вашем подфайле добавьте этот код вверху
платформа: iOS, '8.0'use_frameworks!
Эта функция вернет обещание, когда произойдет чтение, до тех пор, пока сеанс чтения не будет открыт. Промис вернет модель NfcData
, эта модель содержит:
FlutterNfcReader.read()
и FlutterNfcReader.onTagDiscovered()
имеют необязательный параметр, предназначенный только для iOS , который называется instruction
. Вы можете передать строку , содержащую информацию, которая будет отображаться на модальном экране.
id > идентификатор тега
контент > содержимое тега
ошибка > если возникает какая-либо ошибка
FlutterNfcReader.read().then((ответ) {print(response.content); });
эта функция вернет поток, который генерирует NfcData
каждый раз, когда распознается тег. На iOS вы тоже можете использовать это, но IOS всегда будет показывать нижний лист, когда захочет отсканировать тег NFC. Поэтому вам необходимо явно вызвать FlutterNfcReader.read()
когда вы ожидаете второе значение. При подписке на поток функция чтения у вас вызывается первый раз. Просмотрите пример реализации.
FlutterNfcReader.onTagDiscovered().listen((onData) { print(onData.id); print(onData.content); });
Эта функция вернет обещание, когда произойдет запись, до тех пор, пока сеанс чтения не будет открыт. Промис вернет модель NfcData
, эта модель содержит:
контент > написано в теге
FlutterNfcReader.write("path_prefix","содержимое тега").then((response) {print(response.content); });
Вы можете прочитать, а затем записать тег nfc, используя вышеуказанные функции следующим образом:
FlutterNfcReader.read().then((readResponse) {FlutterNfcReader.write(" ",readResponse.content).then((writeResponse) {print('writed: ${writeResponse.content}'); }); });
статус > статус чтения или записи ncf остановлен
FlutterNfcReader.stop().then((response) {print(response.status.toString()); });
Для получения более подробной информации посмотрите демо-приложение.
Чтобы проверить, поддерживает ли Устройство NFC или нет, вы можете вызвать FlutterNfcReader.checkNFCAvailability()
. Метод возвращает NFCAvailability.available
, если NFC поддерживается и включен, NFCAvailability.disabled
, если NFC отключен (только для Android) и NFCAvailability.not_supported
если оборудование пользователя не поддерживает NFC.
IOS ведет себя немного иначе с точки зрения сканирования и записи NFC.
Идентификаторы тегов невозможны в текущей реализации.
каждый скан виден пользователю с помощью нижнего листа
Чтобы получить помощь по началу работы с Flutter, просмотрите нашу онлайн-документацию.
Для получения помощи по редактированию кода плагина просмотрите документацию.
Пожалуйста, сначала ознакомьтесь с правилами внесения взносов. Если вы видите здесь пакет или проект, который больше не поддерживается или не подходит, отправьте запрос на улучшение этого файла. Спасибо всем участникам!!
для разработки на ios вам необходимо активировать «устаревшую» систему сборки из-за этой проблемы во флаттере:
трепетание/трепетание#20685