W3cubDocs

/DOM

USBDevice

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The USBDevice interface of the the WebUSB API provides access to metadata about a paired USB device and methods for controlling it.

Properties

USBDevice.configuration Read only
A USBConfiguration object for the currently selected interface for a paired USB device.
USBDevice.configurations Read only
An array of device-specific interfaces for controlling a paired USB device.
USBDevice.deviceClass Read only
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
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
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
The major version number of the device in a semantic versioning scheme.
USBDevice.deviceVersionMinor Read only
The minor version number of the device in a semantic versioning scheme.
USBDevice.deviceVersionSubminor Read only
The patch version number of the device in a semantic versioning scheme.
USBDevice.manufacturerName Read only
The of the organization that manufactured the USB device.
USBDevice.opened Read only
Indicates whether a session has been started with a paired USB device.
USBDevice.productId Read only
The manufacturer-defined code that identifies a USB device.
USBDevice.productName Read only
The manufacturer-defined name that identifies a USB device.
USBDevice.serialNumber Read only
The manufacturer-defined serial number for the specific USB device.
USBDevice.usbVersionMajor Read only
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
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
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
The official usg.org-assigned vendor ID.

Methods

USBDevice.claimInterface()
Returns a promise that resolves when the requested interface is claimed for exclusive access.
USBDevice.clearHalt()
Returns a promise that resolves when a halt condition is cleared.
USBDevice.controlTransferIn()
Returns a promise that resolves with a USBTransferInResult when a command or status operation has been transmitted to the USB device.
USBDevice.controlTransferOut()
Returns a promise that resolves with a USBTransferOutResult when a command or status operation has been transmitted from the USB device.
USBDevice.close()
Returns a promise that resolves when all open interfaces are released and the device session has ended.
USBDevice.isochronousTransferIn()
Returns a promise that resolves with a USBIsochronousInTransferResult when time sensitive information has been transmitted to the USB device.
USBDevice.isochronousTransferOut()
Returns a promise that resolves with a USBIsochronousOutTransferResult when time sensitive information has been transmitted from the USB device.
USBDevice.open()
Returns a promise that resolves when a device session has started.
USBDevice.releaseInterface()
Returns a promise that resolves when a cliamed interface is released from exclusive access.
USBDevice.reset()
Returns a promise that resolves when the device is reset and all app operations canceled and their promises rejected.
USBDevice.selectAlternateInterface()
Returns a promise that resolves when the specified alternative endpoint is selected.
USBDevice.selectConfiguration()
Returns a promise that resolves when the specified configuration is selected.
USBDevice.transferIn()
Returns a promise that resolves with a USBTransferInResult when bulk or interrupt data is transmitted to the USB device.
USBDevice.transferOut()
Returns a promise that resolves with a USBTransferOutResult when bulk or interrupt data is transmitted from the USB device.

Specifications

Specification Status Comment
WebUSB
The definition of 'USBDevice' in that specification.
Draft Initial definition.

Browser compatibilityUpdate compatibility data on GitHub

Desktop
Chrome Edge Firefox Internet Explorer Opera Safari
Basic support 61 No No No 48 No
usbVersionMajor 61 No No No 48 No
usbVersionMinor 61 No No No 48 No
usbVersionSubminor 61 No No No 48 No
deviceClass 61 No No No 48 No
deviceSubclass 61 No No No 48 No
deviceProtocol 61 No No No 48 No
vendorId 61 No No No 48 No
productId 61 No No No 48 No
deviceVersionMajor 61 No No No 48 No
deviceVersionMinor 61 No No No 48 No
deviceVersionSubminor 61 No No No 48 No
manufacturerName 61 No No No 48 No
productName 61 No No No 48 No
serialNumber 61 No No No 48 No
configuration 61 No No No 48 No
configurations 61 No No No 48 No
opened 61 No No No 48 No
open 61 No No No 48 No
close 61 No No No 48 No
selectConfiguration 61 No No No 48 No
claimInterface 61 No No No 48 No
releaseInterface 61 No No No 48 No
selectAlternateInterface 61 No No No 48 No
controlTransferIn 61 No No No 48 No
controlTransferOut 61 No No No 48 No
clearHalt 61 No No No 48 No
transferIn 61 No No No 48 No
transferOut 61 No No No 48 No
isochronousTransferIn 61 No No No 48 No
isochronousTransferOut 61 No No No 48 No
reset 61 No No No 48 No
Mobile
Android webview Chrome for Android Edge Mobile Firefox for Android Opera for Android iOS Safari Samsung Internet
Basic support No 61 No No 48 No No
usbVersionMajor No 61 No No 48 No No
usbVersionMinor No 61 No No 48 No No
usbVersionSubminor No 61 No No 48 No No
deviceClass No 61 No No 48 No No
deviceSubclass No 61 No No 48 No No
deviceProtocol No 61 No No 48 No No
vendorId No 61 No No 48 No No
productId No 61 No No 48 No No
deviceVersionMajor No 61 No No 48 No No
deviceVersionMinor No 61 No No 48 No No
deviceVersionSubminor No 61 No No 48 No No
manufacturerName No 61 No No 48 No No
productName No 61 No No 48 No No
serialNumber No 61 No No 48 No No
configuration No 61 No No 48 No No
configurations No 61 No No 48 No No
opened No 61 No No 48 No No
open No 61 No No 48 No No
close No 61 No No 48 No No
selectConfiguration No 61 No No 48 No No
claimInterface No 61 No No 48 No No
releaseInterface No 61 No No 48 No No
selectAlternateInterface No 61 No No 48 No No
controlTransferIn No 61 No No 48 No No
controlTransferOut No 61 No No 48 No No
clearHalt No 61 No No 48 No No
transferIn No 61 No No 48 No No
transferOut No 61 No No 48 No No
isochronousTransferIn No 61 No No 48 No No
isochronousTransferOut No 61 No No 48 No No
reset No 61 No No 48 No No

© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/USBDevice