HIDDevice
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает во всех широко используемых браузерах.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.
Экспериментальная: Это экспериментальная технология
Перед использованием в производстве внимательно изучите таблицу совместимости с браузерами.
Примечание: Эта функция доступна в рабочих потоках, за исключением совместных рабочих потоков.
Интерфейс HIDDevice API WebHID представляет собой устройство HID. Он предоставляет свойства для доступа к информации об устройстве, методы для открытия и закрытия соединения, а также отправки и получения отчётов.
Свойства экземпляра
Этот интерфейс также наследует свойства от EventTarget.
-
HIDDevice.openedТолько для чтения Экспериментальная -
Возвращает
boolean, true, если у устройства открыто соединение. -
HIDDevice.vendorIdТолько для чтения Экспериментальная -
Возвращает vendorId устройства HID.
-
HIDDevice.productIdТолько для чтения Экспериментальная -
Возвращает productId устройства HID.
-
HIDDevice.productNameТолько для чтения Экспериментальная -
Возвращает строку с именем продукта устройства HID.
-
HIDDevice.collectionsТолько для чтения Экспериментальная -
Возвращает массив форматов отчетов для устройства HID.
События
-
inputreportЭкспериментальная -
Вызывается при отправке отчета с устройства.
Методы экземпляра
Этот интерфейс также наследует методы от EventTarget.
-
HIDDevice.open()Экспериментальная -
Открывает соединение с этим устройством HID и возвращает
Promise, который разрешается после успешного подключения. -
HIDDevice.close()Экспериментальная -
Закрывает соединение с этим устройством HID и возвращает
Promise, который разрешается после закрытия соединения. -
HIDDevice.forget()Экспериментальная -
Закрывает соединение с этим устройством HID и сбрасывает разрешения доступа, возвращает
Promise, который разрешается после сброса разрешения. -
HIDDevice.sendReport()Экспериментальная -
Отправляет отчет вывода на это устройство HID и возвращает
Promise, который разрешается после отправки отчета. -
HIDDevice.sendFeatureReport()Экспериментальная -
Отправляет отчет функции на это устройство HID и возвращает
Promise, который разрешается после отправки отчета. -
HIDDevice.receiveFeatureReport()Экспериментальная -
Получает отчет функции с этого устройства HID в виде
Promise, который разрешается со значениемDataView. Это позволяет получить типы данных содержимого сообщения.
Примеры
Следующий пример демонстрирует прослушивание события inputreport, что позволит приложению определить, какая кнопка нажата на устройстве Joy-Con Right.
device.addEventListener("inputreport", (event) => {
const { data, device, reportId } = event;
// Handle only the Joy-Con Right device and a specific report ID.
if (device.productId !== 0x2007 && reportId !== 0x3f) return;
const value = data.getUint8(0);
if (value === 0) return;
const someButtons = { 1: "A", 2: "X", 4: "B", 8: "Y" };
console.log(`User pressed button ${someButtons[value]}.`);
});
В следующем примере sendFeatureReport используется для мигания устройства.
const reportId = 1;
for (let i = 0; i < 10; i++) {
// Turn off
await device.sendFeatureReport(reportId, Uint32Array.from([0, 0]));
await new Promise((resolve) => setTimeout(resolve, 100));
// Turn on
await device.sendFeatureReport(reportId, Uint32Array.from([512, 0]));
await new Promise((resolve) => setTimeout(resolve, 100));
}
Дополнительные примеры и демонстрации в статье Подключение к необычным устройствам HID.
Спецификации
| Спецификация |
|---|
| WebHID API # dom-hiddevice |
Совместимость с браузерами
| Рабочий стол | Мобильный телефон | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
HIDDevice |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
close |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
collections |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
forget |
100 | 100 | Нет | 86 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
inputreport_event |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
open |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
opened |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
productId |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
productName |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
receiveFeatureReport |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
sendFeatureReport |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
sendReport |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
vendorId |
89 | 89 | Нет | 75 | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
worker_support |
131Отдельные рабочие процессы и рабочие процессы службы WebExtension, а не общие рабочие процессы и рабочие процессы службы non-WebExtension.117Только рабочие процессы службы WebExtension. |
131Отдельные рабочие процессы и рабочие процессы службы WebExtension, а не общие рабочие процессы и рабочие процессы службы non-WebExtension.117Только рабочие процессы службы WebExtension. |
Нет |
116Отдельные рабочие процессы и рабочие процессы службы WebExtension, а не общие рабочие процессы и рабочие процессы службы non-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/HIDDevice