这是
实验性技术
检查
浏览器兼容性表格
要小心谨慎在生产中使用这之前。
安全上下文
此特征只可用于
安全上下文
(HTTPS),在某些或所有
支持浏览器
.
requestDevice()
method of the
USB
interface returns a
Promise
that resolves with an instance of
USBDevice
if the specified device is found. Calling this function triggers the user agent's pairing flow.
USB.requestDevice([filters])
vendorId
productId
classCode
subclassCode
protocolCode
serialNumber
A
Promise
that resolves with an instance of
USBDevice
.
The following example looks for one of two USB devices. Notice that two product IDs are specified. Both are passed to
requestDevice()
. This triggers a user-agent flow that prompts the user to select a device for pairing. Only the selected device is passed to
then()
.
The number of filters does not specifiy the number of devices shown by the user agent. For example, if only a USB device with product ID
0xa800
is found, then only one device will be listed by the user agent. On the other hand if the user agent finds two of the first listed device and one of the second, then all three devices will be listed.
const filters = [
{vendorId: 0x1209, productId: 0xa800},
{vendorId: 0x1209, productId: 0xa850}
];
navigator.usb.requestDevice({filters: filters})
.then(usbDevice => {
console.log("Product name: " + usbDevice.productName);
})
.catch(e => {
console.log("There is no device. " + e);
});
| 规范 | 状态 | 注释 |
|---|---|---|
|
WebUSB
The definition of 'requestDevice' in that specification. |
草案 | 初始定义。 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
requestDevice
|
Chrome 61 | Edge 79 | Firefox No | IE No | Opera 48 | Safari No | WebView Android No | Chrome Android 61 | Firefox Android No | Opera Android 45 | Safari iOS No | Samsung Internet Android 8.0 |
完整支持
不支持
实验。期望将来行为有所改变。
USB
getDevices()
onconnect
ondisconnect
requestDevice()