Spec-Zone.ru › Web APIs

API WebHID

Ограниченная доступность

Эта функция не относится к Baseline, поскольку она не работает во всех наиболее широко используемых браузерах.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

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

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

Устройство ввода-вывода человека (HID) — это тип устройства, которое получает входные данные от человека или предоставляет выходные данные для человека. Также это относится к протоколу HID, стандарту двусторонней связи между хостом и устройством, предназначенному для упрощения процесса установки. Протокол HID первоначально был разработан для USB-устройств, но с тех пор был реализован на многих других протоколах, включая Bluetooth.

Интерфейсы

HID

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

HIDDevice

Представляет HID-устройство. Возможно, что одно физическое устройство будет представлено несколькими объектами HIDDevice.

HIDInputReportEvent

Передаётся в событие inputreport HIDDevice при получении входного отчета от любого связанного HID-устройства.

HIDConnectionEvent

Передаётся в события connect и disconnect при подключении или отключении устройства.

Примеры

Вы можете подключиться к устройству с помощью метода requestDevice(). В этом случае мы выбираем из всех доступных устройств.

const device = await navigator.hid.requestDevice({ filters: [] });
// A popup titled `... wants to connect to a HID Device` with `Cancel` and `Connect` buttons will show up with a device list to select from.
// Select one and click on `Connect` button. Then the device will be an array with the selected device in it.

Мы можем получить все устройства, к которым веб-сайт получил доступ ранее, и вывести имена устройств в консоль.

let devices = await navigator.hid.getDevices();
devices.forEach((device) => {
  console.log(`HID: ${device.productName}`);
});

Мы можем зарегистрировать обработчики событий для отключения любых HID-устройств.

navigator.hid.addEventListener("disconnect", (event) => {
  console.log(`HID disconnected: ${event.device.productName}`);
  console.dir(event);
});
// For example, when my connected keyboard gets disconnected, the log in the console will show:
// HID disconnected: USB Keyboard
// {
//    bubbles: false
//    cancelBubble: false
//    cancelable: false
//    composed: false
//    currentTarget: HID {onconnect: null, ondisconnect: null}
//    defaultPrevented: false
//    device: HIDDevice {oninputreport: null, opened: false, vendorId: 6700, productId: 11555, productName: "USB Keyboard", …}
//    eventPhase: 0
//    isTrusted: true
//    path: []
//    returnValue: true
//    srcElement: HID {onconnect: null, ondisconnect: null}
//    target: HID {onconnect: null, ondisconnect: null}
//    timeStamp: 18176.600000023842
//    type: "disconnect"
// }

// The event above is an instance of the HIDConnectionEvent interface.

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

Спецификация
API WebHID
# dom-hid

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
WebHID_API 89 89 Нет 75 Нет Нет Нет Нет Нет Нет Нет
connect_event 89 89 Нет 75 Нет Нет Нет Нет Нет Нет Нет
disconnect_event 89 89 Нет 75 Нет Нет Нет Нет Нет Нет Нет
getDevices 89 89 Нет 75 Нет Нет Нет Нет Нет Нет Нет
requestDevice 89 89 Нет 75 Нет Нет Нет Нет Нет Нет Нет
worker_support
131Отдельные рабочие потоки и рабочие потоки расширений WebExtension, не общие рабочие потоки и рабочие потоки, не являющиеся расширениями WebExtension.
117Только рабочие потоки расширений WebExtension.
131Отдельные рабочие потоки и рабочие потоки расширений WebExtension, не общие рабочие потоки и рабочие потоки, не являющиеся расширениями WebExtension.
117Только рабочие потоки расширений WebExtension.
Нет
116Отдельные рабочие потоки и рабочие потоки расширений WebExtension, не общие рабочие потоки и рабочие потоки, не являющиеся расширениями WebExtension.
103Только рабочие потоки расширений WebExtension.
Нет Нет Нет Нет Нет Нет Нет

© 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/WebHID_API

Spec-Zone.ru

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