Могу ли я получить доступ к USB HID в Chrome без приложения?

Я хочу использовать USB HID с веб-сайта. Доступ к веб-сайту будет осуществляться только в браузерах Chrome. Решение должно требовать минимального количества дополнительного программного обеспечения и настройки для работы пользователя веб-сайта.

Устройство USB представляет собой USB HID для ОС, и мне нужно записывать и считывать массивы байтов в него и из него, чтобы реализовать спецификацию производителя для некоторых функций устройства.

Мое текущее решение состоит из двух частей:

  1. Приложение Chrome, использующее chrome.hid API для связи с устройством. Это приложение предоставляет порт обмена сообщениями Chrome Cross-Extension для предоставления и интерфейса для «служебных вызовов».
  2. Код JavaScript на веб-сайте, который отправляет запросы в приложение Chrome, которое затем обращается к USB-устройству для обработки запроса.

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

Я уже пробовал использовать WebUSB navigator.usb API, но Chrome блокирует доступ к USB HID-устройствам. Есть ли другой способ добиться этого?


person knoblauch    schedule 11.04.2020    source источник
comment
У расширений нет такого API, поэтому единственный способ - написать отдельную утилиту (например, в node.js или python и т. Д.), Попросить пользователей установить ее, после чего ваше расширение сможет взаимодействовать с ней через nativeMessaging.   -  person wOxxOm    schedule 12.04.2020
comment
Я рассматривал этот вариант, но он также предполагает, что пользователь устанавливает эту отдельную утилиту. Я хочу избавиться от приложения, потому что это дополнительная зависимость, которую нужно установить, прежде чем я смогу использовать веб-сайт. Уточню в вопросе.   -  person knoblauch    schedule 12.04.2020
comment
Вопрос по вашему вопросу. С вашей текущей настройкой (приложение Chrome + веб-сайт) вы можете отправлять и получать данные со своего HID-устройства, не фокусируя внимание браузера (например, свернуто), одновременно выполняя некоторые другие действия на том же компьютере, таким образом, данные отправляются и принимаются независимо?   -  person Kenna    schedule 08.06.2020


Ответы (1)


Для этого варианта использования разрабатывается WebHID. Он был доступен за флагом функции с Chrome 78. , с первоначальным испытанием, ожидаемым в Chrome 84 (вероятно, позже из-за текущей ситуации с Covid-19), по оценкам, стабильным в августе 2020 года.

Для получения дополнительных сведений: https://github.com/robatwilliams/awesome-webhid.

person Gerrit    schedule 13.04.2020
comment
Спасибо, это действительно полезно (особенно сборник ресурсов). Хотя необходимость включения флага функции не идеальна, я считаю, что это намного лучше, чем установка приложения. - person knoblauch; 14.04.2020