مكون إضافي جديد لرفرفة لمساعدة المطورين الذين يتطلعون إلى استخدام الأجهزة الداخلية داخل أجهزة iOS أو Android لقراءة وكتابة علامات NFC.
يقوم النظام بتنشيط جلسة قراءة جماعية تتوقف تلقائيًا بمجرد التعرف على العلامة. يمكنك أيضًا تشغيل حدث الإيقاف يدويًا باستخدام وظيفة مخصصة.
منصة | علامات NFC المدعومة |
---|---|
أندرويد | NDEF: A، B، F، V، الباركود |
دائرة الرقابة الداخلية | 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" />
قم بتعيين 19 في minSdkVersion في build.gradle (Module: app)
التكوين الافتراضي {... مينسكالإصدار 19... }
يتم دعم مشروع Flutter المستند إلى Swift
فقط.
تمكين القدرات / قراءة علامة الاتصال بالمجال القريب.
ملف Info.plist، أضف الخصوصية - وصف استخدام مسح NFC مع قيمة سلسلة NFC Tag.
في ملف Podfile الخاص بك أضف هذا الرمز في الأعلى
النظام الأساسي: iOS، '8.0'use_frameworks!
ستعيد هذه الوظيفة وعدًا عند حدوث القراءة، حتى تلك اللحظة التي تكون فيها جلسة القراءة مفتوحة. سيعيد الوعد نموذج NfcData
، يحتوي هذا النموذج على:
FlutterNfcReader.read()
و FlutterNfcReader.onTagDiscovered()
لهما معلمة اختيارية، فقط لنظام التشغيل iOS ، تسمى instruction
. يمكنك تمرير سلسلة تحتوي على معلومات ليتم عرضها في الشاشة المشروطة.
معرف > معرف العلامة
المحتوى > محتوى العلامة
خطأ> في حالة حدوث أي خطأ
FlutterNfcReader.read().then((response) {print(response.content); });
ستعيد هذه الوظيفة دفقًا يصدر NfcData
في كل مرة يتم فيها التعرف على علامة. على نظام iOS، يمكنك استخدام هذا أيضًا ولكن نظام IOS سيُظهر دائمًا ورقة سفلية عندما يريد مسح علامة NFC ضوئيًا. لذلك تحتاج إلى إرسال FlutterNfcReader.read()
بشكل صريح عندما تتوقع قيمة ثانية. عند الاشتراك في الدفق، يتم استدعاء وظيفة القراءة لأول مرة بالنسبة لك. عرض المثال لتطبيق عينة.
FlutterNfcReader.onTagDiscovered().listen((onData) { print(onData.id); print(onData.content); });
ستعيد هذه الوظيفة وعدًا عند حدوث الكتابة، حتى تلك اللحظة التي تكون فيها جلسة القراءة مفتوحة. سيعيد الوعد نموذج NfcData
، يحتوي هذا النموذج على:
المحتوى > مكتوب في العلامة
FlutterNfcReader.write("path_prefix"،"tag content").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