In diesem Artikel wird der spezifische Code der Uni-App zur Implementierung der NFC-Lesefunktion zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt Ich habe schon lange keinen Blog mehr geschrieben. Heute habe ich die seltene Gelegenheit, alles, was ich gelernt habe, aufzuzeichnen. 1. NFC-Methode.js //Paketpfad const package_NdefRecord = 'android.nfc.NdefRecord'; const Paket_NdefMessage = "android.nfc.NdefMessage"; const package_TECH_DISCOVERED = "android.nfc.action.TECH_DISCOVERED"; const package_Intent = "android.content.Intent"; const package_Activity = "android.app.Activity"; const package_PendingIntent = "android.app.PendingIntent"; const package_IntentFilter = "android.content.IntentFilter"; const Paket_NfcAdapter = "android.nfc.NfcAdapter"; const Paket_Ndef = "android.nfc.tech.Ndef"; const package_NdefFormatable = "android.nfc.tech.NdefFormatable"; const package_Parcelable = "android.os.Parcelable"; const package_String = "java.lang.String"; lass NfcAdapter; lass NdefRecord; lass NdefMessage; let readyRead = true; //Mit dem Lesen beginnen let noNFC = false; let techListsArray = [ ['android.nfc.tech.IsoDep'], ['android.nfc.tech.NfcA'], ['android.nfc.tech.NfcB'], ['android.nfc.tech.NfcF'], ['android.nfc.tech.Nfcf'], ['android.nfc.tech.NfcV'], ['android.nfc.tech.NdefFormatable'], ['android.nfc.tech.MifareClassi'], ['android.nfc.tech.MifareUltralight'] ]; // Zu schreibende Daten let text = '{id:8888,name:nfc,stie:wangqin.com}'; let readResult = ''; Standard exportieren { listenNFCStatus: Funktion() { console.log("---------listenNFCStatus--------------") lass das = dies; versuchen { let main = plus.android.runtimeMainActivity(); let Intent = plus.android.importClass('android.content.Intent'); let Aktivität = plus.android.importClass('android.app.Aktivität'); let PendingIntent = plus.android.importClass('android.app.PendingIntent'); let IntentFilter = plus.android.importClass('android.content.IntentFilter'); NfcAdapter = plus.android.importClass('android.nfc.NfcAdapter'); let nfcAdapter = NfcAdapter.getDefaultAdapter(main); if (nfcAdapter == null) { uni.showToast({ Titel: ,,Das Gerät unterstützt kein NFC! ', Symbol: „keine“ }) keinNFC = wahr; zurückkehren; } wenn (!nfcAdapter.isEnabled()) { uni.showToast({ Titel: ,,Bitte aktivieren Sie zuerst die NFC-Funktion in den Systemeinstellungen! ', Symbol: „keine“ }); keinNFC = wahr; zurückkehren; } anders { keinNFC = falsch; } let intent = neue Absicht(main, main.getClass()); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); let pendingIntent = PendingIntent.getActivity(main, 0, intent, 0); let ndef = neuer IntentFilter("android.nfc.action.TECH_DISCOVERED"); ndef.addDataType("*/*"); let intentFiltersArray = [ndef]; //Schlüsselcode const promise = new Promise((resolve, reject) => { plus.globalEvent.addEventListener('neuerIntent', Funktion() { // Polling-Anruf NFC // setTimeout(that.nfcRuning(auflösen), 1000); setzeTimeout(() => { that.nfcRunning(auflösen) }, 1000); }); }) nfcAdapter.enableForegroundDispatch(main, pendingIntent, intentFiltersArray, techListsArray); Rückgabeversprechen } fangen (e) { } }, nfcRunning: Funktion (auflösen) { // console.log("--------------nfcRunning---------------") NdefRecord = plus.android.importClass("android.nfc.NdefRecord"); NdefMessage = plus.android.importClass("android.nfc.NdefMessage"); let main = plus.android.runtimeMainActivity(); let intent = main.getIntent(); lass das = dies; wenn (package_TECH_DISCOVERED == intent.getAction()) { wenn (readyRead) { //Hier erhalten wir die NFC-Daten über die Lesemethode const id = that.read(intent); // bereitLesen = false; //Gib die Daten zurück, resolve(id) } } }, lesen(Absicht) { // toast('Label nicht entfernen, Daten werden gelesen'); lass das = dies; // NFC-ID let bytesId = intent.getByteArrayExtra(NfcAdapter.EXTRA_ID); Lassen Sie nfc_id = that.byteArrayToHexString(bytesId); NFC-ID zurückgeben; }, byteArrayToHexString: function(inarray) { // konvertiert Byte-Arrays in Strings lass i, j, inn; let hex = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"]; rauslassen = ""; für (j = 0; j < inarray.length; ++j) { inn = inarray[j] & 0xff; i = (inn >>> 4) & 0x0f; aus += hex[i]; i = Gasthaus & 0x0f; aus += hex[i]; } Rückkehr raus; }, } Funktion Toast (Inhalt) { uni.showToast({ Titel: Inhalt, Symbol: „keine“ }) } 2. Aufrufmethoden auf Seiten mit NFC <Ansichtsklasse="flex nfc-ewm"> <view class="nfc-ewm-item" style="border-right: 1px solid #ccc;" @click="testNFC"> <image src="@/assets/images/application/icon-nfc.png" alt=""></image>NFC-Erkennung</view> <view class="nfc-ewm-item" @click="openScanCode"> <image src="@/assets/images/application/icon-ewm.png" alt=""></image>QR-Code scannen</view> </Ansicht> importiere testtest aus "../../../../../components/hexiii-nfc/hexiii-nfc.js" Methoden: { asynchroner Test NFC () { //Hier verwenden wir eine asynchrone Methode, um die gelesenen NFC-Daten abzurufen const nfcId = await testtest.listenNFCStatus(); //Konsole.log(nfcId) //Die folgenden Daten sind mein Geschäftslogikcode. Wenn Sie nur die NFC-Daten lesen müssen, reicht die obige Codezeile aus. const arr = [] diese.list2.forEach(e => { arr.push(e.code) }) wenn(!nfcId) return wenn ( arr.indexOf(nfcId) === -1) { uni.showToast({ Symbol: „keine“, Titel: 'Kein entsprechender Prüfpunkt gefunden!', Dauer: 2000 }); } anders { uni.showToast({ Symbol: „keine“, Titel: 'Erkennung erfolgreich!', Dauer: 2000 }); uni.navigateTo({ URL: `/Seiten/Anwendung/XunJianGuanLi/XunJianRenWu/KaiShiXunJian3/index?id=${this.id}&spotCode=${nfcId}&delta=${this.delta+1}`, }); } }, } 3. Seitendarstellungen 4. Zusammenfassung Das Obige ist meine Implementierung zum Lesen von NFC-Daten. Es springt automatisch zum entsprechenden Check-in-Kontrollpunkt entsprechend den vom Benutzer durch NFC-Scannen gelesenen Daten. Der Code muss verbessert werden. Bitte geben Sie mir weitere Hinweise. Im ersten Teil der NFC-Methode habe ich viele redundante und nicht verwendete Codes gelöscht, da ich nur den Code lesen muss, sodass nur der erforderliche Code übrig bleibt. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung zur Verwendung von MySQL mysqldump
>>: So ändern Sie die Ubuntu-Quellliste (Quellliste) - detaillierte Erklärung
Inhaltsverzeichnis Integritätsbeschränkungen Defi...
Flex-Layout wird auch elastisches Layout genannt....
Wenn der Programmdienst mit k8s bereitgestellt wi...
Vorwort: Partitionierung ist ein Tabellenentwurfs...
Beim Verwenden von Animation.css habe ich festges...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis Was ist MySQL NDB Cluster? Vor...
Hiermit werden die Grundkenntnisse des Interviewt...
Wenn in Ihrer Organisation bereits eine Kennwortr...
Inhaltsverzeichnis 1. Was ist 2. Verwendung Numer...
Inhaltsverzeichnis Vorwort Was ist Datenbindung? ...
Vorwort Ich glaube, dass jeder in seiner tägliche...
<div Klasse="Box"> <img /> ...
Inhaltsverzeichnis Hafenbezogene Konzepte: Bezieh...
1. Übergeordnete Komponenten können Props verwend...