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 |
浏览器兼容性
加载中…