The USBDevice
interface of the WebUSB API provides access to metadata about a paired USB device and methods for controlling it.
Instance properties
-
USBDevice.configuration
Read only Experimental
-
A USBConfiguration
object for the currently selected interface for a paired USB device.
-
USBDevice.configurations
Read only Experimental
-
An array
of device-specific interfaces for controlling a paired USB device.
-
USBDevice.deviceClass
Read only Experimental
-
One of three properties that identify USB devices for the purpose of loading a USB driver that will work with that device. The other two properties are USBDevice.deviceSubclass
and USBDevice.deviceProtocol
.
-
USBDevice.deviceProtocol
Read only Experimental
-
One of three properties that identify USB devices for the purpose of loading a USB driver that will work with that device. The other two properties are USBDevice.deviceClass
and USBDevice.deviceSubclass
.
-
USBDevice.deviceSubclass
Read only Experimental
-
One of three properties that identify USB devices for the purpose of loading a USB driver that will work with that device. The other two properties are USBDevice.deviceClass
and USBDevice.deviceProtocol
.
-
USBDevice.deviceVersionMajor
Read only Experimental
-
The major version number of the device in a semantic versioning scheme.
-
USBDevice.deviceVersionMinor
Read only Experimental
-
The minor version number of the device in a semantic versioning scheme.
-
USBDevice.deviceVersionSubminor
Read only Experimental
-
The patch version number of the device in a semantic versioning scheme.
-
USBDevice.manufacturerName
Read only Experimental
-
The name of the organization that manufactured the USB device.
-
USBDevice.opened
Read only Experimental
-
Indicates whether a session has been started with a paired USB device.
-
USBDevice.productId
Read only Experimental
-
The manufacturer-defined code that identifies a USB device.
-
USBDevice.productName
Read only Experimental
-
The manufacturer-defined name that identifies a USB device.
-
USBDevice.serialNumber
Read only Experimental
-
The manufacturer-defined serial number for the specific USB device.
-
USBDevice.usbVersionMajor
Read only Experimental
-
One of three properties that declare the USB protocol version supported by the device. The other two properties are USBDevice.usbVersionMinor
and USBDevice.usbVersionSubminor
.
-
USBDevice.usbVersionMinor
Read only Experimental
-
One of three properties that declare the USB protocol version supported by the device. The other two properties are USBDevice.usbVersionMajor
and USBDevice.usbVersionSubminor
.
-
USBDevice.usbVersionSubminor
Read only Experimental
-
One of three properties that declare the USB protocol version supported by the device. The other two properties are USBDevice.usbVersionMajor
and USBDevice.usbVersionMinor
.
-
USBDevice.vendorId
Read only Experimental
-
The official usb.org-assigned vendor ID.
Instance methods
-
USBDevice.claimInterface()
Experimental
-
Returns a Promise
that resolves when the requested interface is claimed for exclusive access.
-
USBDevice.clearHalt()
Experimental
-
Returns a Promise
that resolves when a halt condition is cleared.
-
USBDevice.controlTransferIn()
Experimental
-
Returns a Promise
that resolves with a USBInTransferResult
when a command or status operation has been transmitted to the USB device.
-
USBDevice.controlTransferOut()
Experimental
-
Returns a Promise
that resolves with a USBOutTransferResult
when a command or status operation has been transmitted from the USB device.
-
USBDevice.close()
Experimental
-
Returns a Promise
that resolves when all open interfaces are released and the device session has ended.
-
USBDevice.forget()
Experimental
-
Returns a Promise
that resolves after all open interfaces are released, the device session has ended, and the permission is reset.
-
USBDevice.isochronousTransferIn()
Experimental
-
Returns a Promise
that resolves with a USBIsochronousInTransferResult
when time sensitive information has been transmitted to the USB device.
-
USBDevice.isochronousTransferOut()
Experimental
-
Returns a Promise
that resolves with a USBIsochronousOutTransferResult
when time sensitive information has been transmitted from the USB device.
-
USBDevice.open()
Experimental
-
Returns a Promise
that resolves when a device session has started.
-
USBDevice.releaseInterface()
Experimental
-
Returns a Promise
that resolves when a claimed interface is released from exclusive access.
-
USBDevice.reset()
Experimental
-
Returns a Promise
that resolves when the device is reset and all app operations canceled and their promises rejected.
-
USBDevice.selectAlternateInterface()
Experimental
-
Returns a Promise
that resolves when the specified alternative endpoint is selected.
-
USBDevice.selectConfiguration()
Experimental
-
Returns a Promise
that resolves when the specified configuration is selected.
-
USBDevice.transferIn()
Experimental
-
Returns a Promise
that resolves with a USBInTransferResult
when bulk or interrupt data is received from the USB device.
-
USBDevice.transferOut()
Experimental
-
Returns a Promise
that resolves with a USBOutTransferResult
when bulk or interrupt data is sent to the USB device.
Specifications
Browser compatibility
|
Desktop |
Mobile |
|
Chrome |
Edge |
Firefox |
Internet Explorer |
Opera |
Safari |
WebView Android |
Chrome Android |
Firefox for Android |
Opera Android |
Safari on IOS |
Samsung Internet |
USBDevice |
61 |
79 |
No |
No |
48 |
No |
NoWebView exposes this interface, but does not support WebUSB. See Chromium bug 933055. |
61 |
No |
45 |
No |
8.0 |
claimInterface |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
clearHalt |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
close |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
configuration |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
configurations |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
controlTransferIn |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
controlTransferOut |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
deviceClass |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
deviceProtocol |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
deviceSubclass |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
deviceVersionMajor |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
deviceVersionMinor |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
deviceVersionSubminor |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
forget |
101 |
101 |
No |
No |
87 |
No |
No |
101 |
No |
70 |
No |
19.0 |
isochronousTransferIn |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
isochronousTransferOut |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
manufacturerName |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
open |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
opened |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
productId |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
productName |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
releaseInterface |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
reset |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
selectAlternateInterface |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
selectConfiguration |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
serialNumber |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
transferIn |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
transferOut |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
usbVersionMajor |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
usbVersionMinor |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
usbVersionSubminor |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |
vendorId |
61 |
79 |
No |
No |
48 |
No |
No |
61 |
No |
45 |
No |
8.0 |