Spec-Zone.ru › Web APIs

API WebUSB

Экспериментальный: Это экспериментальная технология experimental technology
Перед использованием в производстве внимательно изучите таблицу совместимости браузеров.

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.

Примечание: Эта функция доступна в Web Workers.

API WebUSB предоставляет способ экспонировать сервисы устройств, совместимых с универсальной последовательной шиной (USB), не соответствующих стандарту, для веб-страниц, чтобы сделать USB безопаснее и проще в использовании.

Концепции и использование

USB — это фактический стандарт для проводных периферийных устройств. Устройства USB, которые вы подключаете к компьютеру, обычно группируются по классам устройств — такие как клавиатуры, мыши, видеоустройства и т. д. Они поддерживаются драйверами классов операционной системы. Многие из них также доступны в веб через API WebHID.

Помимо этих стандартных устройств, существует большое количество устройств, которые не подходят ни к одному классу. Для них требуются пользовательские драйверы, и они недоступны из веб-приложения из-за необходимости использования кода нативных языков для их использования. Установка одного из таких устройств часто подразумевает поиск драйверов на веб-сайте производителя и, если вы хотите использовать устройство на другом компьютере, повторное выполнение этого процесса.

WebUSB предоставляет способ экспонировать сервисы устройств USB, не соответствующих стандарту, для веб-приложений. Это означает, что производители оборудования смогут предоставить способ доступа к своим устройствам из веб-приложений без необходимости разработки собственного API.

При подключении нового устройства, совместимого с WebUSB, браузер отображает уведомление с ссылкой на веб-сайт производителя. При переходе на этот сайт браузер запросит разрешение на подключение к устройству, после чего устройство будет готово к использованию. Не нужно загружать и устанавливать драйверы.

Интерфейсы

USB

Предоставляет атрибуты и методы для поиска и подключения устройств USB с веб-страницы.

USBConnectionEvent

Тип события, передаваемый в USB connect или disconnect события, когда пользовательский агент обнаруживает новое подключенное к хосту или отключенное от хоста устройство USB.

USBDevice

Предоставляет доступ к метаданным о сопряженном устройстве USB и методам управления им.

USBInTransferResult

Представляет результат запроса передачи данных от устройства USB к хосту USB.

USBOutTransferResult

Представляет результат запроса передачи данных от хоста USB к устройству USB.

USBIsochronousInTransferPacket

Представляет состояние отдельного пакета из запроса передачи данных от устройства USB к хосту USB через изохронный конечный пункт.

USBIsochronousInTransferResult

Представляет результат запроса передачи данных от устройства USB к хосту USB.

USBIsochronousOutTransferPacket

Представляет состояние отдельного пакета из запроса передачи данных от хоста USB к устройству USB через изохронный конечный пункт.

USBIsochronousOutTransferResult

Представляет результат запроса передачи данных от хоста USB к устройству USB.

USBConfiguration

Предоставляет информацию о конкретной конфигурации устройства USB и интерфейсах, которые оно поддерживает.

USBInterface

Предоставляет информацию об интерфейсе, предоставленном устройством USB.

USBAlternateInterface

Предоставляет информацию о конкретной конфигурации интерфейса, предоставленного устройством USB.

USBEndPoint

Предоставляет информацию об конечном пункте, предоставленном устройством USB.

Примеры

Доступ к подключенному устройству

Следующий пример демонстрирует, как получить доступ к подключенному устройству Arduino с использованием USB.requestDevice(), у которого vendorId равен 0x2341.

navigator.usb
  .requestDevice({ filters: [{ vendorId: 0x2341 }] })
  .then((device) => {
    console.log(device.productName); // "Arduino Micro"
    console.log(device.manufacturerName); // "Arduino LLC"
  })
  .catch((error) => {
    console.error(error);
  });

Поиск всех подключенных устройств

Вы можете найти все подключенные устройства с помощью USB.getDevices(). В следующем примере, с подключенным устройством Arduino, имя продукта и производителя выводятся в консоль.

navigator.usb.getDevices().then((devices) => {
  devices.forEach((device) => {
    console.log(device.productName); // "Arduino Micro"
    console.log(device.manufacturerName); // "Arduino LLC"
  });
});

Спецификации

Спецификация
API WebUSB

См. также

  • Доступ к устройствам USB в веб-приложениях

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WebUSB_API

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API