Что такое Vibration API?

Vibration API (navigator.vibrate()) — это стандарт браузера, который позволяет веб-страницам запускать вибромотор, встроенный в смартфоны и некоторые планшеты. API принимает либо одно значение длительности в миллисекундах, либо чередующийся массив длительностей вибрации и пауз — так называемый паттерн вибрации. API поддерживается в большинстве браузеров Android; iOS не предоставляет вибрацию веб-страницам из-за ограничений платформы.

Паттерны вибрации описываются как массивы, где значения с нечётными индексами представляют длительность вибрации, а значения с чётными индексами — длительность пауз. Например, [200, 100, 200] означает вибрировать 200 мс, пауза 100 мс, вибрировать 200 мс. Вызов navigator.vibrate(0) или navigator.vibrate([]) немедленно отменяет любую текущую вибрацию.

Описание инструмента

Этот инструмент позволяет проверить, поддерживает ли ваше устройство Vibration API, и экспериментировать с паттернами вибрации прямо в браузере. Вы можете запустить одиночный импульс с настраиваемой длительностью, ввести полностью пользовательский паттерн, разделённый запятыми, или выбрать один из встроенных предустановок, таких как SOS, сердцебиение и двойные/тройные импульсы. Журнал событий записывает каждую попытку вибрации с временной меткой и точным использованным паттерном, чтобы вы могли сравнивать результаты на разных устройствах и браузерах.

Примеры

Входной паттерн Что происходит
300 Одиночный импульс длительностью 300 мс
200,100,200 Вибрировать 200 мс → пауза 100 мс → вибрировать 200 мс
150,100,150,100,150 Три коротких импульса с промежутками 100 мс между ними
0 Отменяет любую текущую вибрацию

Возможности

  • Определяет, поддерживают ли устройство и браузер Vibration API, и отображает статус при загрузке
  • Регулируемая длительность одиночного импульса от 10 мс до 5000 мс с помощью ползунка
  • Ввод пользовательского паттерна принимает любую последовательность длительностей вибрации и пауз, разделённых запятыми
  • Шесть готовых предустановок: Short Pulse, Long Pulse, Double Pulse, Triple Pulse, SOS Pattern и Heartbeat
  • Журнал событий с временными метками, показывающий каждый запущенный паттерн и был ли он принят или отклонен браузером

Варианты использования

  • Разработка мобильного веб-приложения: Проверьте, что тактильная обратная связь, реализованная с помощью Vibration API, действительно работает на целевом устройстве перед выпуском функции.
  • Тестирование устройств QA: Быстро подтвердите, что вибромотор работает на новом или отремонтированном смартфоне без установки нативного приложения.
  • Прототипирование паттернов: Итерируйте пользовательские последовательности вибрации (уведомления, обратная связь в играх, сигналы доступности), тестируя их в реальном времени в браузере.

Как это работает

Инструмент вызывает navigator.vibrate(pattern) с предоставленным вами значением. Браузер возвращает true, если вызов был принят, и false, если он был отклонен — например, потому что документ не в фокусе или устройство не поддерживает API. Оба результата записываются в журнал событий. Вся обработка происходит полностью на устройстве; никакие данные не отправляются на какой-либо сервер.

Ограничения

  • iOS (Safari, Chrome на iOS): Apple не предоставляет navigator.vibrate() на iOS, поэтому API всегда сообщается как неподдерживаемый на iPhone и iPad.
  • Браузеры на настольных компьютерах: Настольные компьютеры обычно не имеют вибромотора, поэтому даже если API доступен, он не имеет физического эффекта.
  • Фоновые вкладки: Некоторые браузеры молча отклоняют вызовы вибрации, когда страница не находится на переднем плане.
  • Максимальная длительность: Отдельные сегменты вибрации ограничены браузером (обычно около 10 секунд); очень большие значения могут быть молча усечены.