Spec-Zone.ru › Web APIs

USB: метод requestDevice()

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

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

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

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

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

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

Метод requestDevice() интерфейса USB возвращает Promise, который разрешается экземпляром USBDevice, если указанное устройство найдено. Вызов этой функции запускает процесс сопряжения пользователя.

Синтаксис

requestDevice(filters)

Параметры

filters

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

  • vendorId
  • productId
  • classCode
  • subclassCode
  • protocolCode
  • serialNumber

Возвращаемое значение

A Promise, который разрешается экземпляром USBDevice.

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

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

Примеры

В следующем примере ищется одно из двух USB-устройств. Обратите внимание, что указаны два идентификатора продукта. Оба передаются в requestDevice(). Это запускает процесс пользователя, который запрашивает у пользователя выбрать устройство для сопряжения. Только выбранное устройство передается в then().

Количество фильтров не определяет количество устройств, отображаемых пользователем. Например, если найдено только USB-устройство с идентификатором продукта 0xa800, то пользователь отобразит только одно устройство. С другой стороны, если пользовательское агент находит два устройства из первого списка и одно из второго, тогда все три устройства будут перечислены.

const filters = [
  { vendorId: 0x1209, productId: 0xa800 },
  { vendorId: 0x1209, productId: 0xa850 },
];
navigator.usb
  .requestDevice({ filters })
  .then((usbDevice) => {
    console.log(`Product name: ${usbDevice.productName}`);
  })
  .catch((e) => {
    console.error(`There is no device. ${e}`);
  });

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

Спецификация
API WebUSB
# ref-for-dom-usb-requestdevice④

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
requestDevice 61 79 Нет 48 Нет 61 Нет 45 Нет 8.0 Нет

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

Spec-Zone.ru

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