USB: requestDevice() 方法
注意:此功能在 Web Workers 中可用。
requestDevice() 是 USB 接口的一个方法,如果找到指定的设备,它会返回一个 Promise,该 Promise 会解析为 USBDevice 实例。调用此函数会触发用户代理的配对流程。
语法
js
requestDevice(options)
参数
返回值
安全
需要瞬时用户激活。用户必须与页面或 UI 元素进行交互才能使此功能正常工作。
示例
下面的示例查找两种 USB 设备之一。请注意,指定了两个产品 ID。它们都被传递给了 requestDevice()。这会触发用户代理流程,提示用户选择一个设备进行配对。只有选定的设备才会被传递给 then()。
过滤器的数量并不决定用户代理显示的设备数量。例如,如果只找到一个产品 ID 为 0xa800 的 USB 设备,那么用户代理只会列出这一个设备。另一方面,如果用户代理找到第一个列出的设备有两个,第二个设备有一个,那么所有三个设备都会被列出。
js
const filters = [
{ vendorId: 0x1209, productId: 0xa800 },
{ vendorId: 0x1209, productId: 0xa850 },
];
navigator.usb
.requestDevice({ filters })
.then((usbDevice) => {
console.log(`Product name: ${usbDevice.productName}`);
})
.catch((e) => {
console.error(`There is no device. ${e}`);
});
规范
| 规范 |
|---|
| WebUSB API # dom-usb-requestdevice |
浏览器兼容性
加载中…