Некоторые Web API не могут быть использованы без взаимодействия пользователя со страницей.
Допустим, вы хотите использовать Web Speech API (SpeechSynthesis, SpeechRecognition) для распознавания речи при загрузке страницы. Вы можете обнаружить, что это не работает, если просто вставить код распознавания речи внутрь тега <script> на вашей странице. Вместо этого, вы должны вызывать API в ответ на некоторое действие пользователя, например, нажатие кнопки:
# Это гарантирует, что API используется в ответ на действие пользователя.
var button = document.querySelector('#start');
button.addEventListener('click', function()
{
# вызов API
});
Ограничение, требующее взаимодействия пользователя для использования некоторых Web API, обычно связано с проблемами безопасности и конфиденциальности. Это предотвращает некоторые формы вредоносных действий, таких как автоматическое включение записи аудио или видео без согласия пользователя, или использование синтеза речи для воспроизведения нежелательного аудио.
В случае с Web Speech API, браузеры требуют взаимодействия пользователя для активации API, чтобы убедиться, что пользователь действительно хочет включить функцию распознавания или синтеза речи. Это помогает предотвратить некорректное использование API, например, в случаях, когда сайт может пытаться слушать аудио пользователя без его явного согласия.
С точки зрения пользовательского опыта, неожиданное включение синтеза речи может быть неприятным. Требование взаимодействия пользователя помогает убедиться, что звуковые функции активируются только тогда, когда это явно запрошено или предвидено пользователем.
Web API, требующие взаимодействия пользователя
Geolocation API
Браузеры обычно требуют разрешения пользователя на доступ к его геолокации. Это можно проверить, вызывая метод navigator.geolocation.getCurrentPosition(), который выдаст запрос на разрешение, если оно ещё не было предоставлено.Notifications API
Этот API также требует разрешения пользователя. Вы можете проверить его статус, используя Notification.permission.MediaDevices API
Для доступа к устройствам ввода, таким как камера и микрофон, требуется разрешение пользователя. Методы navigator.mediaDevices.getUserMedia() или navigator.mediaDevices.getDisplayMedia() выдадут запрос на разрешение.Push API
Этот API используется для получения push-уведомлений от сервера, и он также требует разрешения пользователя. Вы можете проверить статус разрешения с помощью Notification.permission.Web Bluetooth и Web USB API
Эти API требуют пользовательского взаимодействия для соединения с внешними устройствами.
Проверка обычно сводится к вызову соответствующего метода или функции API и наблюдению за поведением браузера. Если браузер запрашивает разрешение пользователя или не выполняет действие без его взаимодействия, это указывает на то, что API требует пользовательского взаимодействия.
Комментарии
0Нашли ошибку или хотите дополнить материал?