NDEFReader:scan() 方法
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
NDEFReader 接口的 scan() 方法激活读取设备并返回一个 Promise,其会在添加执行 NFC 标签读取操作的计划后兑现,或者在遇到硬件或权限错误时拒绝。如果尚未授予“nfc”权限,则此方法会触发权限提示。
语法
js
scan(options)
参数
options可选-
一个包含以下属性的对象:
signal-
一个
AbortSignal,允许取消此scan()操作。
返回值
一个 Promise,在为 NFC 适配器安排读取操作后立即兑现。
异常
此方法不抛出异常;相反,它会拒绝返回的 promise,并传入一个 DOMException,其 name 属性是以下值之一:
AbortErrorDOMException-
如果使用
options参数中传递的AbortSignal中止了扫描操作,则返回此异常。 InvalidStateErrorDOMException-
如果有正在进行中的扫描,则返回此异常。
NotAllowedErrorDOMException-
如果拒绝了对此操作的权限,则返回此异常。
NotSupportedErrorDOMException-
如果不存在与 Web NFC 兼容的 NFC 适配器或无法建立连接,则返回此异常。
示例
>处理扫描错误
此示例展示了当扫描 promise 被拒绝且抛出 readingerror 时会发生什么。
js
const ndef = new NDEFReader();
ndef
.scan()
.then(() => {
console.log("扫描启动成功。");
ndef.onreadingerror = (event) => {
console.log("错误!无法从 NFC 标签读取数据。尝试换一个?");
};
ndef.onreading = (event) => {
console.log("已读取 NDEF 消息。");
};
})
.catch((error) => {
console.log(`错误!扫描启动失败:${error}。`);
});
规范
| Specification |
|---|
| Web NFC> # dom-ndefreader-scan> |
浏览器兼容性
Loading…