USB: метод requestDevice()
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из самых широко используемых браузеров.
Экспериментальная: Это экспериментальная технология
Перед использованием в продуктовой среде внимательно проверьте таблицу совместимости с браузерами.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.
Примечание: Эта функция доступна в Web Workers.
Метод requestDevice() интерфейса USB возвращает Promise, который разрешается экземпляром USBDevice, если указанное устройство найдено. Вызов этой функции запускает процесс сопряжения пользователя.
Синтаксис
requestDevice(filters)
Параметры
filters-
Массив объектов фильтров для возможных устройств, с которыми вы хотите установить сопряжение. Каждый объект фильтра может содержать следующие свойства:
vendorIdproductIdclassCodesubclassCodeprotocolCodeserialNumber
Возвращаемое значение
Безопасность
Требуется временная активация пользователя. Пользователь должен взаимодействовать со страницей или элементом пользовательского интерфейса, чтобы эта функция работала.
Примеры
В следующем примере ищется одно из двух 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