Статьи

Жужжание об API вибрации

Поскольку мобильный Интернет продолжает расти, разрабатываются API-интерфейсы, специально предназначенные для мобильных устройств. Ярким примером является API вибрации W3C, который предоставляет разработчикам доступ к аппаратному обеспечению вибрации устройства. Это имеет очевидные последствия для игр, поскольку может обеспечить более захватывающий опыт. Эта статья научит вас, как добавить тактильную обратную связь в ваши приложения и оставить ваших пользователей в моде.

Обнаружение поддержки

Vibration API по-прежнему в основном не поддерживается. Firefox 16+ в настоящее время является единственным браузером с поддержкой API. Поэтому вы должны проверить поддержку браузера, прежде чем пытаться использовать вибрации. Следующая функция обнаруживает поддержку браузера, проверяя единственную функцию API, vibrate() . Обратите внимание, что браузер может поддерживать Vibration API, даже если базовое устройство фактически не содержит какого-либо вибрационного оборудования. В этом случае создание вибрации не будет иметь никакого эффекта.

 function supportsVibration() { return !!window.navigator.vibrate; } 

Создание вибрации

Вибрации создаются с помощью функции window.navigator.vibrate() . Функция vibrate() принимает один аргумент, pattern , который указывает одну или несколько длительностей вибрации. Если pattern является целым числом, то будет генерироваться одиночная вибрация. Вибрация будет длиться миллисекунды. Например, следующий код будет генерировать одну секунду вибрации.

 window.navigator.vibrate(1000); 

Аргумент pattern также может быть массивом целых чисел. В этом случае элементы массива представляют переменную длительность колебаний и пауз. Используя этот синтаксис, предыдущий пример можно переписать, как показано ниже.

 window.navigator.vibrate([1000]); 

Поскольку в предыдущем примере была указана только одна вибрация, нет необходимости указывать паузы. Тем не менее, следующий пример создает колебания в одну, две и три секунды. В этом примере между вибрациями возникает пауза раз в секунду.

 window.navigator.vibrate([1000, 1000, 2000, 1000, 3000]); 

Отмена вибрации

Если vibrate() вызывается во время выполнения устройством шаблона вибрации, то шаблон выполнения отменяется, и начинается новый шаблон. Такое поведение позволяет обновлять шаблоны вибрации. Это также позволяет отменять шаблоны вибрации, если новый шаблон равен нулю, пустой массив или массив нулей. Например, все следующие шаблоны будут отменять любой существующий шаблон вибрации.

 window.navigator.vibrate(0); window.navigator.vibrate([]); window.navigator.vibrate([0]); 

Вывод

API-интерфейс Vibration очень прост, но он отражает больший сдвиг в разработке веб-приложений. API не только обслуживает мобильные устройства, но также предоставляет разработчикам доступ к оборудованию клиентского устройства. Это еще один пример все более размытой границы между нативными и веб-приложениями.