NDEFReader: scan() メソッド

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

scan()NDEFReader インターフェイスのメソッドで、読み取り機器を起動し、 Promise を返します。このプロミスは NFC タグの読み取り操作がスケジュールされたときに解決し、ハードウェアや権限のエラーが発生したときは拒否されます。このメソッドは、 "nfc" の権限が事前に許可されていない場合は、許可を問い合わせるプロンプトを起動します。

構文

js
scan(options)

引数

options 省略可

以下のプロパティを持つオブジェクトです。

signal

AbortSignal で、これによってこの scan() 操作をキャンセルすることができます。

返値

Promise で、 NFC アダプターで読み取り操作のスケジューリングが終わると直ちに解決します。

例外

このメソッドからは例外は発生しません。代わりに返されるプロミスが拒否され、 DOMExceptionname を何れかの一つとして渡されます。

AbortError

options 引数で渡された AbortSignal によってスキャン操作が中止された場合に返されます。

InvalidStateError DOMException

既に進行中のスキャンがある場合に返されます。

NotAllowedError

この操作の権限が拒否された場合に返されます。

NotSupportedError

ウェブ NFC と互換性のある NFC アダプターがない、または接続が確立できなかった場合に返されます。

スキャン中のエラーの取り扱い

この例では、スキャンのプロミスが拒否され、 readingerror が発生したときの様子を示しています。

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}.`);
  });

仕様書

Specification
Web NFC API
# dom-ndefreader-scan

ブラウザーの互換性

BCD tables only load in the browser