--- title: USB.requestDevice() slug: Web/API/USB/requestDevice tags: - API - USB - WebUSB - WebUSB API - getDevices() - Определение - метод translation_of: Web/API/USB/requestDevice ---

{{APIRef("WebUSB API")}}{{SeeCompatTable}}{{securecontext_header}}

Метод requestDevice() интерфейса {{domxref("USB")}} возвращает {{jsxref("Promise")}}, возвращающий экземпляр {{domxref("USBDevice")}}, если необходимое устройство было найдено. Вызов этого метода начинает процесс соединения браузера с устройством.

Синтаксис

USB.requestDevice([filters])

Параметры

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

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

{{JSxRef("Promise")}}, возвращающий экземпляр {{DOMxRef("USBDevice")}}.

Пример

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

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

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

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

Спецификация Статус Комментарий
{{SpecName("Web USB","#dom-usb-requestdevice-options-options","requestDevice")}} {{Spec2("Web USB")}} Изначальное определение.

Совместимость

{{Compat("api.USB.requestDevice")}}