NDEFReader
NDEFReader 介面是 Web NFC API 的一部分,用於在相容的 NFC 裝置(例如支援 NDEF 的 NFC 標籤)位於讀取器的磁感應場內時,讀取和寫入資料到這些裝置。
建構函式
NDEFReader()實驗性功能-
返回一個新的
NDEFReader物件。
例項方法
NDEFReader 介面繼承了其父介面 EventTarget 的方法。
NDEFReader.scan()實驗性功能-
啟用一個讀取裝置,並返回一個
Promise。該 Promise 在 NFC 標籤讀取操作安排完成後解析,或者在遇到硬體或許可權錯誤時拒絕。如果之前未授予 "nfc" 許可權,此方法會觸發許可權提示。 NDEFReader.write()實驗性功能-
嘗試將 NDEF 訊息寫入標籤,並返回一個
Promise。該 Promise 在訊息成功寫入標籤後解析,或者在遇到硬體或許可權錯誤時拒絕。如果之前未授予 "nfc" 許可權,此方法會觸發許可權提示。
事件
繼承其父級 EventTarget 的事件。
reading實驗性功能-
當有相容 NFC 裝置的新讀取資料可用時觸發。
readingerror實驗性功能-
當標籤靠近讀取裝置但無法讀取時觸發。
示例
處理寫入時的初始讀取
下面的示例展示瞭如何協調通用的讀取處理程式和用於單個寫入的特定讀取處理程式。為了進行寫入,需要找到並讀取一個標籤。這使得您能夠檢查它是否確實是您想要寫入的標籤。因此,建議您在讀取事件中呼叫 write()。
js
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);
}
規範
| 規範 |
|---|
| Web NFC # the-ndefreader-object |
瀏覽器相容性
載入中…