NDEFReader
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
NDEFReader
はウェブ NFC APIのインターフェイスで、互換性のある NFC 機器、たとえば NDEF に対応している NFC タグなどがリーダーの磁気誘導範囲にあるときに、これらの機器からデータを読み取ったり、書き込んだりするために使用されます。
コンストラクター
NDEFReader()
Experimental-
新しい
NDEFReader
オブジェクトです。
インスタンスメソッド
NDEFReader
インターフェイスは、親インターフェイスである EventTarget
からメソッドを継承しています。
NDEFReader.scan()
Experimental-
読み取り機器をアクティブにして
Promise
を返します。このプロミスは NFC タグの読み取り操作がスケジュールされたときに解決し、ハードウェアまたは権限のエラーが発生したときは拒否されます。このメソッドは、 "nfc" の権限が事前に許可されていない場合は、許可を問い合わせるプロンプトを起動します。 NDEFReader.write()
Experimental-
NDEF メッセージをタグに書き込む操作を行い、
Promise
を返します。このプロミスは、タグへのメッセージの書き込みが完了した場合は解決し、ハードウェアまたは権限のエラーが発生したときは拒否されます。このメソッドは、 "nfc" の権限が事前に許可されていない場合は、許可を問い合わせるプロンプトを起動します。
イベント
親である EventTarget
からプロパティを継承しています。
reading
Experimental-
互換性のある NFC 機器から読み取りができるようになったときに発行されます。
readingerror
Experimental-
タグが読み取り装置の近くにあるにもかかわらず、読み取れなかった場合に発行されます。
例
書き込み前の読み取りを扱う
以下の例では、一般的な読み取りハンドラーと、単一の書き込みに特化したハンドラーの間で調整する方法を示しています。書き込みを行うためには、タグを発見し、読み取る必要があります。これにより、実際に書き込みたいタグであるかどうかをチェックすることができます。そのため、読み取りイベントから write()
を呼び出すことが推奨されます。
const ndef = new NDEFReader();
let ignoreRead = false;
ndef.onreading = (event) => {
if (ignoreRead) {
return; // write pending, ignore read.
}
console.log("We read a tag, but not during pending write!");
};
function write(data) {
ignoreRead = true;
return new Promise((resolve, reject) => {
ndef.addEventListener(
"reading",
(event) => {
// Check if we want to write to this tag, or reject.
ndef
.write(data)
.then(resolve, reject)
.finally(() => (ignoreRead = false));
},
{ once: true },
);
});
}
await ndef.scan();
try {
await write("Hello World");
console.log("We wrote to a tag!");
} catch (err) {
console.error("Something went wrong", err);
}
仕様書
Specification |
---|
Web NFC API # the-ndefreader-object |
ブラウザーの互換性
BCD tables only load in the browser