NDEFReader.scan()
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
scan()
は NDEFReader
インターフェイスのメソッドで、読み取り機器を起動し、 Promise
を返します。このプロミスは NFC タグが読み取れたときに解決し、ハードウェアや権限のエラーが発生したときは拒否されます。このメソッドは、 "nfc" の権限が事前に許可されていない場合は、許可を問い合わせるプロンプトを起動します。
構文
var readerPromise = NDEFReader.scan(options);
引数
options
省略可-
以下のプロパティを持つオブジェクトです。
signal
--AbortSignal
で、これによってこのscan()
操作をキャンセルすることができます。
返値
Promise
で、 NFC アダプターのスケジュール済みの読み取り操作が終わると直ちに解決します。
例外
このメソッドからは例外は発生しません。代わりに返されるプロミスが拒否され、 DOMException
が name
を何れかの一つとして渡されます。
AbortError
-
options
引数で渡されたAbortSignal
によってスキャン操作が中止された場合に返されます。 InvalidStateError
DOMException
-
既に進行中のスキャンがある場合に返されます。
NotAllowedError
-
この操作の権限が拒否された場合に返されます。
NotSupportedError
-
ウェブ NFC と互換性のある NFC アダプターがない、または接続が確立できなかった場合に返されます。
例
スキャン中のエラーの取り扱い
この例では、スキャンのプロミスが拒否され、 readingerror
が発生したときの様子を示しています。
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