--- 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])
vendorId
- ИД производителя (USB VID)productId
- ИД устройства USB PIDclassCode
- код класса функциональности устройстваsubclassCode
- код подклассаprotocolCode
- код протоколаserialNumber
- серийный номер{{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")}}