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 Elternschnittstelle.

NDEFReader.scan() Experimentell

Aktiviert ein Lesegerät und gibt ein Promise zurück, das entweder auflöst, wenn ein Lesevorgang für ein NFC-Tag geplant ist, oder ablehnt, wenn ein Hardware- oder Berechtigungsfehler auftritt. Diese Methode löst eine Berechtigungsaufforderung 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 auflöst, wenn eine Nachricht auf das Tag geschrieben wurde, oder ablehnt, wenn ein Hardware- oder Berechtigungsfehler auftritt. Diese Methode löst eine Berechtigungsaufforderung aus, wenn die "nfc"-Berechtigung nicht zuvor erteilt wurde.

Ereignisse

Erbt Ereignisse von seinem Elternteil, EventTarget.

reading Experimentell

Wird ausgelöst, wenn neue Leseinformationen von kompatiblen NFC-Geräten verfügbar sind.

readingerror Experimentell

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

Beispiele

Umgang mit Anfangslesevorgängen beim Schreiben

Das folgende Beispiel zeigt, wie man zwischen einem allgemeinen Lese-Handler und einem speziell für ein einzelnes Schreiben koordinieren 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() von einem Leseereignis aus 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
# the-ndefreader-object

Browser-Kompatibilität