一個新的 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 參考:開發
然後運行外殼
顫振包獲取
最後一步導入到專案中:
導入'包: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" />
在build.gradle (Module: app)
預設配置 {... minSdkVersion 19... }
Atm 僅支援基於Swift
的 Flutter 專案。
啟用功能/近場通訊標籤讀取。
Info.plist 文件,新增隱私 - NFC 掃描使用說明以及字串值 NFC 標籤。
在您的 Podfile 頂部新增此程式碼
平台:ios,'8.0'use_frameworks!
當發生讀取時,此函數將傳回一個承諾,直到讀取會話開啟為止。 Promise 將會傳回一個NfcData
模型,該模型包含:
FlutterNfcReader.read()
和FlutterNfcReader.onTagDiscovered()
有一個可選參數,只適用於iOS ,稱為instruction
。您可以傳遞一個包含要在模式畫面中顯示的資訊的字串。
id > 標籤的 id
內容 > 標籤的內容
錯誤 > 如果發生任何錯誤
FlutterNfcReader.read().then((response) {print(response.content); });
該函數將傳回一個 Stream,每次識別標籤時都會發出NfcData
。在 Ios 上,您也可以使用此功能,但當 IOS 想要掃描 NFC 標籤時,它總是會顯示底部表單。因此,當您需要第二個值時,您需要明確強制轉換FlutterNfcReader.read()
。訂閱流時,第一次呼叫 read 函數。查看範例以取得範例實作。
FlutterNfcReader.onTagDiscovered().listen((onData) { print(onData.id); print(onData.content); });
當寫入發生時,函數將傳回一個承諾,直到讀取會話開啟為止。 Promise 將會傳回一個NfcData
模型,該模型包含:
內容 > 寫在標籤中
FlutterNfcReader.write("path_prefix","標籤內容").then((response) {print(response.content); });
您可以使用上述函數讀取並寫入 nfc 標籤,如下所示
FlutterNfcReader.read().then((readResponse) {FlutterNfcReader.write(" ",readResponse.content).then((writeResponse) {print('寫入: ${writeResponse.content}'); }); });
狀態 > 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 入門協助,請查看我們的線上文件。
有關編輯外掛程式碼的協助,請查看文件。
請先快速瀏覽一下貢獻指南。如果您在此處看到不再維護或不合適的套件或項目,請提交拉取請求以改善此文件。感謝所有貢獻者!
要在 ios 上進行開發,您需要啟動「舊版」建置系統,因為 flutter 中存在以下問題:
顫振/顫振#20685