NDEFReader:scan() 方法
NDEFReader
接口的scan()
方法激活读取设备并返回一个Promise
,该方法在安排 NFC 标签读取操作时解析,或者在遇到硬件或权限错误时拒绝。如果之前未授予“nfc”权限,则此方法会触发权限提示。
语法
js
scan(options)
参数
options
可选-
具有以下属性的对象
signal
-
一个
AbortSignal
,允许取消此scan()
操作。
返回值
一个Promise
,在为 NFC 适配器安排读取操作后立即解析。
异常
此方法不会抛出异常;而是拒绝返回的 Promise,并传递一个DOMException
,其name
为以下之一
AbortError
DOMException
-
如果扫描操作使用
options
参数中传递的AbortSignal
中止,则返回。 InvalidStateError
DOMException
-
如果已经有正在进行的扫描,则返回。
NotAllowedError
DOMException
-
如果此操作的权限被拒绝,则返回。
NotSupportedError
DOMException
-
如果不存在与 Web NFC 兼容的 NFC 适配器或无法建立连接,则返回。
示例
处理扫描错误
此示例显示当扫描 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 API # dom-ndefreader-scan |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。