API WebHID
Ограниченная доступность
Эта функция не относится к Baseline, поскольку она не работает во всех наиболее широко используемых браузерах.
Экспериментально: Это экспериментальная технология
Перед использованием в производстве внимательно изучите таблицу совместимости с браузерами.
Примечание: Эта функция доступна в Web Workers, за исключением Shared Web Workers.
Устройство ввода-вывода человека (HID) — это тип устройства, которое получает входные данные от человека или предоставляет выходные данные для человека. Также это относится к протоколу HID, стандарту двусторонней связи между хостом и устройством, предназначенному для упрощения процесса установки. Протокол HID первоначально был разработан для USB-устройств, но с тех пор был реализован на многих других протоколах, включая Bluetooth.
Интерфейсы
HID-
Предоставляет методы для подключения к HID-устройствам, перечисления подключенных HID-устройств и обработчиков событий для подключенных HID-устройств.
HIDDevice-
Представляет HID-устройство. Возможно, что одно физическое устройство будет представлено несколькими объектами
HIDDevice. HIDInputReportEvent-
Передаётся в событие
inputreportHIDDeviceпри получении входного отчета от любого связанного 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