NDEFReader: scan() 方法
NDEFReader 接口的 scan() 方法用于激活读取设备,并返回一个 Promise。当 NFC 标签读取操作被调度时,此 Promise 会被解析;如果遇到硬件或权限错误,则会被拒绝。如果尚未授予 "nfc" 权限,此方法会触发一个权限提示。
语法
js
scan(options)
参数
options可选-
具有以下属性的对象:
signal-
一个
AbortSignal,允许取消此scan()操作。
返回值
一个 Promise,在调度 NFC 适配器的读取操作后立即解析。
异常
此方法不抛出异常;相反,它会拒绝返回的 Promise,传递一个 DOMException,其 name 为以下之一:
AbortErrorDOMException-
当使用
options参数中传递的AbortSignal中止扫描操作时返回。 InvalidStateErrorDOMException-
当已有一个正在进行的扫描时返回。
NotAllowedErrorDOMException-
当此操作的权限被拒绝时返回。
NotSupportedErrorDOMException-
当没有与 Web NFC 兼容的 NFC 适配器,或者无法建立连接时返回。
示例
处理扫描错误
此示例显示了当 scan Promise 被拒绝并抛出 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 |
浏览器兼容性
加载中…