Spec-Zone.ru › Web APIs

HID: метод requestDevice()

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

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

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

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

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

Метод requestDevice() интерфейса HID запрашивает доступ к устройству HID.

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

Синтаксис

requestDevice(options)

Параметры

options

Объект, содержащий массив объектов фильтра для возможных устройств для сопряжения. Каждый объект фильтра может иметь следующие свойства:

vendorId Необязательно

Целое число, представляющее vendorId запрошенного устройства HID

productId Необязательно

Целое число, представляющее productId запрошенного устройства HID.

usagePage Необязательно

Целое число, представляющее компонент страницы использования HID запрошенного устройства. Использование для коллекции верхнего уровня используется для идентификации типа устройства.

Стандартные значения использования HID можно найти в документе HID Usage Tables

usage Необязательно

Целое число, представляющее компонент идентификатора использования HID запрошенного устройства.

Примечание: Фильтры устройств используются для сужения списка устройств, представленных пользователю. Если фильтры отсутствуют, показываются все подключённые устройства. Если один или несколько фильтров включены, устройство включается, если любой фильтр совпадает. Для соответствия фильтру все правила, включенные в этот фильтр, должны соответствовать.

Значение возврата

А Promise, который разрешается массивом подключённых объектов HIDDevice, соответствующих переданным фильтрам.

Исключения

SecurityError DOMException

Выбрасывается, если страница не разрешает доступ к функции HID.

Безопасность

Временная активация пользователя требуется. Пользователь должен взаимодействовать со страницей или элементом интерфейса пользователя, чтобы эта функция работала.

Примеры

Сопоставление устройства со всеми четырьмя правилами фильтра

В следующем примере запрашивается устройство HID с vendor ID 0xABCD, product ID 0x1234, page usage 0x0C и usage ID 0x01. Будут показаны только устройства, соответствующие всем этим правилам.

let requestButton = document.getElementById("request-hid-device");
requestButton.addEventListener("click", async () => {
  let device;
  try {
    const devices = await navigator.hid.requestDevice({
      filters: [
        {
          vendorId: 0xabcd,
          productId: 0x1234,
          usagePage: 0x0c,
          usage: 0x01,
        },
      ],
    });
    device = devices[0];
  } catch (error) {
    console.log("An error occurred.");
  }

  if (!device) {
    console.log("No device was selected.");
  } else {
    console.log(`HID: ${device.productName}`);
  }
});

Пример с двумя фильтрами

В этом примере используются два фильтра. Устройства будут показаны, если они соответствуют любому из этих фильтров.

// Filter on devices with the Nintendo Switch Joy-Con USB Vendor/Product IDs.
const filters = [
  {
    vendorId: 0x057e, // Nintendo Co., Ltd
    productId: 0x2006, // Joy-Con Left
  },
  {
    vendorId: 0x057e, // Nintendo Co., Ltd
    productId: 0x2007, // Joy-Con Right
  },
];

// Prompt user to select a Joy-Con device.
const [device] = await navigator.hid.requestDevice({ filters });

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

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

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet WebView Android
requestDevice 89 89 Нет 75 Нет Нет Нет Нет Нет Нет Нет

© 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/HID/requestDevice

Spec-Zone.ru

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