NDEFReader

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Die NDEFReader-Schnittstelle der Web NFC API wird verwendet, um Daten von und zu kompatiblen NFC-Geräten zu lesen und zu schreiben, z. B. NFC-Tags, die NDEF unterstützen, wenn sich diese Geräte im magnetischen Induktionsfeld des Lesegeräts befinden.

EventTarget NDEFReader

Konstruktor

NDEFReader() Experimentell

Gibt ein neues NDEFReader-Objekt zurück.

Instanzmethoden

Die NDEFReader-Schnittstelle erbt die Methoden von EventTarget, ihrer übergeordneten Schnittstelle.

NDEFReader.scan() Experimentell

Aktiviert ein Lesegerät und gibt ein Promise zurück, das entweder aufgelöst wird, wenn ein NFC-Tag-Lesevorgang geplant wird, oder abgelehnt wird, wenn ein Hardware- oder Berechtigungsfehler auftritt. Diese Methode löst eine Berechtigungsanfrage aus, wenn die "nfc"-Berechtigung nicht zuvor erteilt wurde.

NDEFReader.write() Experimentell

Versucht, eine NDEF-Nachricht auf ein Tag zu schreiben und gibt ein Promise zurück, das entweder aufgelöst wird, wenn eine Nachricht auf das Tag geschrieben wurde, oder abgelehnt wird, wenn ein Hardware- oder Berechtigungsfehler auftritt. Diese Methode löst eine Berechtigungsanfrage aus, wenn die "nfc"-Berechtigung nicht zuvor erteilt wurde.

Ereignisse

Erbt Ereignisse von seinem übergeordneten, EventTarget.

reading Experimentell

Wird ausgelöst, wenn eine neue Leseoperation von kompatiblen NFC-Geräten verfügbar ist.

readingerror Experimentell

Wird ausgelöst, wenn ein Tag in der Nähe eines Lesegeräts ist, aber nicht gelesen werden kann.

Beispiele

Handhabung von anfänglichen Lesevorgängen beim Schreiben

Das folgende Beispiel zeigt, wie zwischen einem allgemeinen Lesehandler und einem, der speziell für einen einzelnen Schreibvorgang verwendet wird, koordiniert werden kann. Um zu schreiben, muss ein Tag gefunden und gelesen werden. Dies gibt Ihnen die Möglichkeit zu überprüfen, ob es tatsächlich ein Tag ist, auf das Sie schreiben möchten. Deshalb wird empfohlen, write() aus einem Leseereignis heraus aufzurufen.

js
const ndef = new NDEFReader();
let ignoreRead = false;

ndef.onreading = (event) => {
  if (ignoreRead) {
    return; // write pending, ignore read.
  }

  console.log("We read a tag, but not during pending write!");
};

function write(data) {
  ignoreRead = true;
  return new Promise((resolve, reject) => {
    ndef.addEventListener(
      "reading",
      (event) => {
        // Check if we want to write to this tag, or reject.
        ndef
          .write(data)
          .then(resolve, reject)
          .finally(() => (ignoreRead = false));
      },
      { once: true },
    );
  });
}

await ndef.scan();
try {
  await write("Hello World");
  console.log("We wrote to a tag!");
} catch (err) {
  console.error("Something went wrong", err);
}

Spezifikationen

Specification
Web NFC API
# the-ndefreader-object

Browser-Kompatibilität

BCD tables only load in the browser