Ich versuche eine Webanwendung auf einem Chromebook zu erstellen. Ich benötige sie, um die RFID-Kartenseriennummern mit einem ACR122U NFC zu lesen. Ich benutze chrome-nfc.Auslösen eines Ereignisses, wenn eine NFC-Karte angezeigt wird
Ich lese glücklich Karten, aber ich weiß nicht, wie ein Ereignis ausgelöst wird, wenn eine Karte präsentiert wird.
Gibt es in chrom-nfc irgendwelche Ereignisse, die ich verwenden kann, um zu wissen, wann eine Karte dem Leser präsentiert wurde?
EDIT: Ich habe versucht, chrome.nfc.wait_for_tag zu verwenden, aber es verhält sich nicht so, wie ich es erwarten würde.
// With a card on the reader
chrome.nfc.wait_for_tag(device, 10000, function(tag_type, tag_id){
var CSN = new Uint32Array(tag_id)[0];
console.log ("CSN: " + CSN);
});
[DEBUG] acr122_set_timeout(round up to 1275 secs)
DEBUG: InListPassiveTarget SENS_REQ(ATQA)=0x4, SEL_RES(SAK)=0x8
DEBUG: tag_id: B6CA9B6B
DEBUG: found Mifare Classic 1K (106k type A)
[DEBUG] nfc.wait_for_passive_target: mifare_classic with ID: B6CA9B6B
CSN: 1805372086
// with no card on the reader
chrome.nfc.wait_for_tag(device, 10000, function(tag_type, tag_id){
var CSN = new Uint32Array(tag_id)[0];
console.log ("CSN: " + CSN);
});
[DEBUG] acr122_set_timeout(round up to 1275 secs)
DEBUG: found 0 target, tg=144
Beide geben die Ergebnisse wie oben sofort, scheint es nicht, welche Zahl Materie ich für ein Timeout verwenden ...
Wenn ich die Funktion ohne Karte auf den Leser rufen, und dann sofort lege die Karte nach Funktionsaufruf auf den Reader, bekomme ich keine Ausgabe in der Konsole.
Danke @Grinn für Ihren Vorschlag. Ich habe jedoch Probleme, dass es nicht wirklich wartet, es kommt immer sofort zurück. Ich habe die Frage mit einem Beispiel für die Ausgabe aktualisiert. – Hank
@Hank Was ist der Wert von 'tag_id', wenn keine Karte im Leser ist? – Grinn
es ist undefiniert ...es ist, als ob die Funktion abgebrochen wird und es nie zu meinem Callback kommt – Hank