Web Gamepad API предоставляет странице доступ к объектам геймпадов, которые браузер решает отобразить. Это широко используется, но доступность не гарантирует идентичные названия устройств, порядок кнопок, порядок осей или поддержку функций на разных платформах.
Активация пользователем и обнаружение
Браузеры могут ожидать нажатия кнопки геймпада, прежде чем отобразить подключенное устройство. Это снижает пассивный фингерпринтинг и означает, что геймпад может быть физически подключен, в то время как navigator.getGamepads() изначально возвращает пустые записи. Keymap Labs просит пользователя нажать кнопку и ожидает события подключения, продолжая проверять текущий список.
Некоторые функции устройств в браузере требуют безопасного соединения. Используйте https://keymap.io, поддерживайте браузер в актуальном состоянии и избегайте скопированных или встроенных версий страницы при сравнении результатов.
Стандартные и общие раскладки
Объект геймпада может объявить стандартную раскладку, которая задает общие позиции для основных кнопок, бамперов, триггеров, стиков и крестовины. Общие устройства могут предоставлять пустую раскладку и отображать необработанные массивы в порядке, специфичном для устройства.
Keymap Labs всегда показывает необработанные индексы кнопок и значения осей. Это делает инструмент полезным, даже если геймпад не соответствует привычной схеме. Он не переименовывает общий ввод с необоснованной уверенностью.
Аналоговые триггеры могут отображаться как кнопки с дробными значениями, отдельные оси или цифровые кнопки в зависимости от стека. Дополнительные функции, такие как тачпады, гироскоп, состояние батареи, светодиоды и тактильная отдача, не всегда доступны через основную раскладку и выходят за рамки стандартной диагностики.
Поведение при подключении и индексы
Геймпады получают индекс в рамках сессии браузера. Отключение и повторное подключение могут изменить активную запись. Лаборатория в реальном времени выбирает доступное устройство и реагирует на изменения подключения; используйте селектор устройств, когда обнаружено несколько геймпадов.
Беспроводной режим может отображать другой идентификатор или набор функций, чем режим USB. Эту разницу следует записывать при устранении неполадок. Видимый браузеру идентификатор также может быть общим по соображениям конфиденциальности или из-за драйверов.
Матрица проверки
Серьезное сравнение совместимости требует физических устройств на разных операционных системах и браузерных движках. Keymap Labs использует стандартный API и корректно обрабатывает отсутствие кнопок или осей, но онлайн-тест не может эмулировать драйвер каждого геймпада.
Полезная запись сравнения включает:
- Операционная система и версия
- Браузерный движок и версия
- Модель геймпада и прошивка
- Проводное подключение, Bluetooth или проприетарный приемник
- Отображаемый ID, раскладка, количество осей и кнопок
- Представление триггеров и порядок стиков
- Поведение при подключении, переподключении и фокусе
Результаты следует рассматривать как устаревшие наблюдения, а не как вечный знак «работает везде». Обновления браузера и операционной системы могут со временем изменять раскладки.
Интерпретация пустого результата
Отсутствие геймпада на странице может означать отсутствие устройства, отсутствие активации пользователем, ограничение браузера, конкурирующее приложение, уровень драйвера или проблему с подключением. В руководстве по обнаружению геймпадов эти уровни рассматриваются в контролируемом порядке.
Если устройство отображается, но визуальная метка неверна, изменения необработанного индекса все равно подтверждают, что ввод достиг браузера. Если оси не возвращаются в центр, Тест на дрифт стика добавляет временную выборку, но этот результат остается привязанным к текущей раскладке и калибровке.
Обещание совместимости
Keymap Labs поддерживает современные браузеры, которые предоставляют Gamepad API, и обеспечивает явное состояние отката, когда он недоступен. Он не требует учетной записи, расширения браузера или драйвера. Он не может гарантировать расширенные функции геймпада или универсальные метки.
Это обещание намеренно точное. Пользователи получают работающую необработанную диагностику там, где это позволяет платформа, и полезное объяснение там, где это невозможно.