NDEFReader: scan()-Methode

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 scan()-Methode der NDEFReader-Schnittstelle aktiviert ein Lesegerät und gibt ein Promise zurück, das entweder erfüllt wird, wenn ein NFC-Tag-Lesevorgang geplant ist, oder abgelehnt wird, wenn ein Hardware- oder Berechtigungsfehler auftritt. Diese Methode löst eine Berechtigungsabfrage aus, wenn die "nfc"-Berechtigung nicht zuvor erteilt wurde.

Syntax

js
scan(options)

Parameter

options Optional

Ein Objekt mit den folgenden Eigenschaften:

signal

Ein AbortSignal, das das Abbrechen dieser scan()-Operation ermöglicht.

Rückgabewert

Ein Promise, das sofort nach der Planung von Lesevorgängen für den NFC-Adapter erfüllt wird.

Ausnahmen

Diese Methode wirft keine Ausnahmen; stattdessen wird das zurückgegebene Promise abgelehnt und eine DOMException übergeben, deren name einer der folgenden ist:

AbortError DOMException

Wird zurückgegeben, wenn die Scan-Operation mit dem in den options übergebenen AbortSignal abgebrochen wurde.

InvalidStateError DOMException

Wird zurückgegeben, wenn bereits ein laufender Scan existiert.

NotAllowedError DOMException

Wird zurückgegeben, wenn die Berechtigung für diese Operation abgelehnt wurde.

NotSupportedError DOMException

Wird zurückgegeben, wenn kein NFC-Adapter vorhanden ist, der mit Web NFC kompatibel ist, oder keine Verbindung hergestellt werden kann.

Beispiele

Scanningfehler behandeln

Dieses Beispiel zeigt, was passiert, wenn ein Scan-Promise abgelehnt wird und readingerror ausgelöst wird.

js
const ndef = new NDEFReader();
ndef
  .scan()
  .then(() => {
    console.log("Scan started successfully.");
    ndef.onreadingerror = (event) => {
      console.log(
        "Error! Cannot read data from the NFC tag. Try a different one?",
      );
    };
    ndef.onreading = (event) => {
      console.log("NDEF message read.");
    };
  })
  .catch((error) => {
    console.log(`Error! Scan failed to start: ${error}.`);
  });

Spezifikationen

Specification
Web NFC API
# dom-ndefreader-scan

Browser-Kompatibilität

BCD tables only load in the browser