USB: requestDevice() 方法
requestDevice()
方法是 USB
接口的方法,它返回一个 Promise
,如果找到指定的设备,该 Promise 将解析为 USBDevice
的实例。调用此函数将触发用户代理的配对流程。
语法
js
requestDevice(filters)
参数
过滤器
-
要配对的可能设备的过滤器对象的数组。每个过滤器对象都可以具有以下属性
vendorId
productId
classCode
subclassCode
protocolCode
serialNumber
返回值
安全性
短暂的用户激活 是必需的。用户必须与页面或 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 # ref-for-dom-usb-requestdevice④ |
浏览器兼容性
BCD 表仅在浏览器中加载