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 aufgelöst wird, wenn eine NFC-Tag-Leseoperation geplant ist, oder abgelehnt wird, wenn ein Hardware- oder Berechtigungsfehler auftritt. Diese Methode löst eine Berechtigungsabfrage aus, wenn die "nfc"-Berechtigung nicht vorher erteilt wurde.

Syntax

js
scan(options)

Parameter

options Optional

Ein Objekt mit den folgenden Eigenschaften:

signal

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

Rückgabewert

Ein Promise, das sofort aufgelöst wird, nachdem Leseoperationen für den NFC-Adapter geplant wurden.

Ausnahmen

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

AbortError DOMException

Wird zurückgegeben, wenn die Scan-Operation mit dem AbortSignal abgebrochen wurde, das im options-Argument übergeben 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 mit Web NFC kompatibler NFC-Adapter vorhanden ist oder keine Verbindung hergestellt werden kann.

Beispiele

Behandeln von Scanfehlern

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
# dom-ndefreader-scan

Browser-Kompatibilität