Spec-Zone.ru › Web APIs

HIDDevice

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

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

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

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

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

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

Интерфейс HIDDevice API WebHID представляет собой устройство HID. Он предоставляет свойства для доступа к информации об устройстве, методы для открытия и закрытия соединения, а также отправки и получения отчётов.

EventTarget HIDDevice

Свойства экземпляра

Этот интерфейс также наследует свойства от 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

Spec-Zone.ru

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