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 参照: 開発
そしてシェルを実行します
フラッターパッケージを取得
最後のステップはプロジェクトにインポートします。
import 'パッケージ:flutter_nfc_reader/flutter_nfc_reader.dart';
これら 2 行をAndroidManifest.xml
の上部に追加します。
<uses-permission android:name="android.permission.NFC" /> <uses-featureandroid:name="android.hardware.nfc"android:required="true" />
build.gradle (Module: app)
の minSdkVersion に 19 を割り当てます。
defaultConfig {... minSDKバージョン19... }
Atm のみSwift
ベースの Flutter プロジェクトがサポートされています。
機能/近距離無線通信タグ読み取りを有効にします。
Info.plist ファイルに、文字列値 NFC タグを含むプライバシー - NFC スキャン使用法の説明を追加します。
Podfile の先頭にこのコードを追加します
プラットフォーム:ios、'8.0' use_frameworks!
この関数は、読み取りが発生すると、読み取りセッションが開くその瞬間まで Promise を返します。 Promise はNfcData
モデルを返します。このモデルには以下が含まれます。
FlutterNfcReader.read()
とFlutterNfcReader.onTagDiscovered()
には、 iOS専用の、 instruction
と呼ばれるオプションのパラメータがあります。モーダル画面に表示する情報を含む文字列を渡すことができます。
id > タグのid
コンテンツ > タグのコンテンツ
エラー > エラーが発生した場合
FlutterNfcReader.read().then((response) {print(response.content); });
この関数は、タグが認識されるたびにNfcData
を発行する Stream を返します。 IOS でもこれを使用できますが、IOS では NFC タグをスキャンするときに常に下のシートが表示されます。したがって、2 番目の値が必要な場合は、 FlutterNfcReader.read()
を明示的にキャストする必要があります。ストリームをサブスクライブするときに、初めて read 関数が呼び出されます。サンプル実装については、「例」を参照してください。
FlutterNfcReader.onTagDiscovered().listen((onData) { print(onData.id); print(onData.content); });
この関数は、書き込みが発生すると、読み取りセッションが開くその瞬間まで Promise を返します。 Promise は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}'); }); });
status > ncf 読み取りまたは書き込み停止のステータス
FlutterNfcReader.stop().then((response) {print(response.status.toString()); });
詳細については、デモ アプリをご覧ください。
デバイスが NFC をサポートしているかどうかを確認するには、 FlutterNfcReader.checkNFCAvailability()
を呼び出します。このメソッドは、NFC がサポートされ有効になっている場合はNFCAvailability.available
を返し、NFC が無効になっている場合 (Android のみ) はNFCAvailability.disabled
返し、ユーザーのハードウェアが NFC をサポートしていない場合はNFCAvailability.not_supported
返します。
IOS は、NFC のスキャンと書き込みに関して少し異なる動作をします。
現在の実装ではタグの ID は使用できません
各スキャンは下部シートでユーザーに表示されます
Flutter の使用を開始する際のヘルプについては、オンライン ドキュメントをご覧ください。
プラグイン コードの編集については、ドキュメントを参照してください。
まずは投稿ガイドラインをざっとご覧ください。メンテナンスされなくなった、または適切ではないパッケージまたはプロジェクトをここで見つけた場合は、このファイルを改善するためにプル リクエストを送信してください。寄稿者の皆様、ありがとうございました!!
Flutter には次の問題があるため、iOS で開発するには「レガシー」ビルド システムをアクティブにする必要があります。
フラッター/フラッター#20685