Подключение к редким устройствам из вашего приложения.
Что такое WebHID API?
Многие устройства пользовательского интерфейса (HID) слишком новые, слишком старые или слишком редкие, чтобы быть доступными для драйверов устройств системы. API WebHID решает эту проблему, предоставляя способ реализации специфичной для устройства логики на JavaScript.
Примеры использования API WebHID
Устройства HID принимают ввод от человека или выдают ему вывод. Примерами таких устройств являются клавиатуры, указательные устройства (мыши, сенсорные экраны и т. д.) и геймпады. Протокол HID позволяет получать доступ к этим устройствам на настольных компьютерах с помощью драйверов операционной системы. Веб-платформа поддерживает устройства HID, используя эти драйверы.
Невозможность доступа к редким HID-устройствам особенно проблематична, когда речь идёт о поддержке геймпадов. Геймпады, разработанные для ПК, часто используют HID для ввода (кнопки, джойстики, триггеры) и вывода (светодиоды, вибрация). Однако входы и выходы геймпадов плохо стандартизированы, и веб-браузеры часто требуют пользовательской логики для конкретных устройств. Это нежизнеспособно и приводит к плохой поддержке множества старых и редких устройств. Это также заставляет браузер зависеть от особенностей поведения конкретных устройств.
Демонстрации, демонстрации, демонстрации
Если вам интересно, как работают эти примеры, исходный код для всех них доступен на GitHub. В пояснительном тексте есть простой пример кода .
Подсветка клавиатуры MacBook Pro
Самым большим препятствием для тестирования любой из этих демонстраций является отсутствие доступа к устройству. К счастью, если у вас есть MacBook Pro с TouchBar, вам ничего не нужно покупать. Эта демонстрация позволяет использовать API прямо с вашего ноутбука. Она также показывает, как WebHID можно использовать для разблокировки функциональности встроенных устройств, а не только периферийных.
Автор: Ф.Вейнб
Демонстрация/Исходный код: Подсветка клавиатуры
Игровые контроллеры
Беспроводной контроллер PlayStation 4
Далее речь пойдёт о том, что, вероятно, есть у немногих из вас. Sony DualShock 4 — это беспроводной контроллер для игровых консолей PlayStation 4.
Демонстрационная версия DualShock 4 использует WebHID для приема необработанных входных данных с контроллера DualShock 4 и предоставляет высокоуровневый API для доступа к данным гироскопа, акселерометра, сенсорной панели, кнопок и джойстика. Она также поддерживает вибрацию и настройку цвета RGB-светодиода, встроенного в контроллер.
Автор: TheBITLINK
Демоверсия: Демоверсия DualShock 4 ( Источник )
Контроллеры Joy-Con для Nintendo Switch
Играйте в офлайн-игру Chrome Dino 🦖, прыгая с контроллером Nintendo Switch Joy-Con в кармане брюк. Эта демоверсия работает на основе Joy-Con WebHID , драйвера WebHID для контроллеров Nintendo Switch Joy-Con.
Автор: Томас Штайнер
Демонстрация: Chrome Dino WebHID ( исходный код демонстрации , исходный код драйвера )
Полоска BlinkStick
BlinkStick Strip — это светодиодная лента, совместимая с HID-технологией, с 8 RGB-светодиодами. Демонстрационная версия позволяет пользователю выбирать из нескольких режимов мигания, включая «бегущие огоньки», «мигание» и «сканер Ларсона» (также известный как Cylon).
Автор: Робат Уильямс
Демонстрация: blinkstick-strip ( исходный код )
Моргнуть, моргнуть, моргнуть
Что делает эта демонстрация? (Подождите.) Она мигает. На самом деле, это три демонстрации, которые используют мигающий (1) индикатор уведомлений USB.
blink(1) — это простой и хорошо документированный инструмент, что делает его отличным вариантом для начала работы с HID.
Автор: Тод Э. Курт
Демонстрации: blink(1) ( источник )
Благодарности
Спасибо Питу ЛеПейджу и Кейси Баскес .