В настоящее время мы привыкли получать тактильную обратную связь, когда получаем текстовое сообщение или когда играем в игру на своем телефоне.
До сих пор у нативных приложений было то преимущество, что они предоставляли пользователям глубокие возможности, имея возможность тесно взаимодействовать с оборудованием хостинга.
Однако благодаря Vibration API мы можем обогатить наши веб-приложения новой функциональностью и позволить устройству вибрировать через наш браузер!
Это еще один шаг к сокращению функционального разрыва с нативными приложениями.
Vibration API просто ничего не сделает, если хост-устройство его не поддерживает.
Это соответствует стратегии прогрессивного улучшения. То есть, если у пользователя современный браузер и устройство, способное вибрировать, мы можем предложить более богатый опыт. С другой стороны, наше веб-приложение должно корректно работать для всех других пользователей даже без расширенных функций.
Синтаксис API
Мы используем navigator.vibrate
для определения шаблона, состоящего из одной вибрации или последовательности вибраций и пауз. Метод принимает в качестве параметра целое число или массив целых чисел, выражающих длительность в миллисекундах вибрации или последовательности вибраций и пауз соответственно. Тип возвращаемого значения — boolean
: false в случае передачи неверных параметров, true в противном случае.
Как упоминалось ранее, если устройство не поддерживает вибрацию, этот метод не будет иметь никакого эффекта.
var success = window.navigator.vibrate(pattern);
шаблон
Предоставляет образец интервалов вибрации и паузы. Каждое значение указывает количество миллисекунд для вибрации или паузы попеременно. Вы можете указать либо одно значение (чтобы вибрировать один раз в течение указанного количества миллисекунд), либо массив значений для попеременной вибрации, паузы и повторной вибрации. (Источник: MDN Web)
Метод возвращает логическое значение, если мы передаем неправильные параметры.
Чтобы сгенерировать одиночную вибрацию продолжительностью 300 мс, мы можем использовать следующий код:
window.navigator.vibrate(300);
В то время как для создания шаблона, состоящего из вибрации 300 мс, паузы 100 мс, вибрации 300 мс:
window.navigator.vibrate([300, 100, 300]);
Отменить беговую вибрацию
Текущую вибрацию можно прервать в любой момент, передав методу navigator.vibrate()
значение 0 или пустой массив. заменить старый, бегущий образец.
Подпишитесь на меня в Твиттере, если хотите узнавать о новых статьях или будущих обновлениях.
Случаи применения
Мы можем придумать разные сценарии, в которых этот API может пригодиться. Вероятно, самый интуитивно понятный — для веб-игр, где мы можем обеспечить дополнительную степень вовлеченности пользователей.
Это может быть полезно также для веб-викторин, чтобы подчеркнуть неправильный ответ или дать тактильную обратную связь об ошибках при заполнении формы. Последний случай может быть особенно полезен при работе с длинными формами на мобильных устройствах, поскольку отображаемая клавиатура может закрывать некоторые сообщения об ошибках или недопустимые поля формы.
Поддержка браузера
API хорошо поддерживается большинством (современных) браузеров, за исключением IE и Safari.
Конечно, целевое устройство также должно иметь аппаратное обеспечение вибрации, чтобы работать правильно!
Демо
Вы можете протестировать API на своем телефоне с помощью следующей живой DEMO.
Здесь Github REPO с исходным кодом демо.
Вывод
Vibration API — еще одна интересная возможность обогатить наши веб-проекты и предложить нашим пользователям улучшенный опыт, который до сих пор был зарезервирован только для собственных приложений.
Первоначально опубликовано на https://dev.to 16 декабря 2020 г.