Как вибрировать без взаимодействия с пользователем? - PullRequest
2 голосов
/ 01 мая 2019

Я работаю над Qr Reader как часть большого веб-приложения. Поскольку приложение структурировано на нескольких страницах для каждого представления, а не на одностраничном приложении (SPA), я обычно не взаимодействую с пользователями на странице qr reader, потому что они уже сделали это на предыдущей странице, нажав «открыть». кнопка "читатель" При вызове navigator.vibrate(200) браузер не будет вибрировать, если пользователь не коснулся экрана на странице, которая его вызывает. Я хочу использовать api вибрации как сигнал об успешно найденном qr-коде.

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

Можно ли как-то обойти это, кроме как объединить страницу с кнопкой и средством чтения qr в одно, чтобы не потерять "пользователь взаимодействовал" между перезагрузками страницы?

function qrCodeFoundCallback() {
  if ('vibrate' in navigator) {
    navigator.vibrate(200)
  }
}

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

Теперь устройство вибрирует, только если пользователь случайно коснулся экрана, но у него / нее нет причин делать это. Страница содержит только функцию поиска камеры и кнопку возврата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...