このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

NDEFReader: scan() メソッド

利用可能性は限定的

この機能はベースラインではありません。最も広く使用されているブラウザーの一部で動作しません。

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

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

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

構文

js
scan(options)

引数

options 省略可

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

signal

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

返値

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

例外

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

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

仕様書

仕様書
Web NFC
# dom-ndefreader-scan

ブラウザーの互換性