API вибрации PWA
Давайте использовать навигатор, чтобы встряхнуть ваше устройство
Брм, Брм!
Взаимодействие с пользователем на «чувственном» уровне может значительно улучшить пользовательский опыт вашего приложения. Как правило, мы, разработчики, должны ограничиваться причудливой анимацией, такой как эффекты параллакса или 3D-рендеринг, чтобы передать более реалистичное ощущение внутри наших приложений. Но знаете ли вы, что прогрессивные веб-приложения могут дать гораздо больше? Сегодня мы рассмотрим тактильную сторону взаимодействия между Интернетом и пользователем.
Грохот в джунглях (дев-)
На момент написания не все среды обеспечивают поддержку нового API вибрации. В частности, можно использовать любой браузер Chromium и Firefox, тогда как каждый вариант Safari / WebKit не поддерживается. Примечание: каждый браузер на iOS использует WebKit в качестве движка.
Использование самого API настолько просто, насколько это возможно. Вот пример:
// All examples assume that we have
// access to the 'window' and use Typescript.
// Specifically, we're using optional chaining
// for simplified handling of undefined if no
// API is available.
const vibrateOnceOnClick = () => {
// A simple one-liner is all that's needed.
// To use a single vibration, we simple
// provide an integer representing the ms
// a single pulse should last.
window.navigator?.vibrate?.(200);
}
const vibratePatternOnClick = () => {
// For more than one puse, an array has to be
// provided, again defining each pulse's lenght
// in milliseconds.
window.navigator?.vibrate?.([50, 200, 50, 200]);
}
Чтобы убедиться, что этот код работает, просто нажмите кнопку копирования в правом нижнем углу фрагмента кода. Если ваше устройство поддерживает это, следует начать легкую вибрацию, чтобы подтвердить действие копирования в буфер обмена.
Мы почти закончили, давайте просто взглянем на последние функции API:
const cancelVibration = () => {
// Quick and easy: call 'vibrate' with
// a val of 0 and the current vibration
// is stopped.
window.navigator?.vibrate?.(0);
}
Вот и все! Не так много, чтобы охватить, но применяется правильно, то есть не слишком много в вашем приложении, и только когда это применимо, API-интерфейс вибрации - действительно отличная функция для использования. Я думаю, что лучший вариант использования - это тактильное подтверждение или отклонение важных действий пользователя, например действие копирования для кода в этом случае или действие постоянного удаления в другом приложении.
- Tom
Действия
Feedback
Предлагаемые сообщения
Дополнение