Диалоговое окно подтверждения при использовании API блокировки указателя HTML5

Я пытаюсь API блокировки указателя, используя эту демонстрационную страницу. Но во время выполнения кода я вижу, что браузер показывает диалоговое окно подтверждения, спрашивающее, хочет ли пользователь скрыть указатель мыши. Есть ли способ предотвратить появление этого диалогового окна программным способом, чтобы пользователи могли без проблем работать?

1 ответ

Ваш вопрос может быть слишком широким, поскольку на самом деле он сильно зависит от реализации, то есть от конкретного браузера. Это уже слабый ключ к "нет".

Другие веб-API, такие как getUserMedia() или же getCurrentPosition() или же requestFullscreen() также требуется подтверждение, и это может быть очень задумано таким образом. Пользователь должен сохранить контроль в любое время. Особенно с блокировкой указателя, неопытный пользователь может быть легко пойман в ловушку. Это еще один сильный намек на "нет".

В некоторых браузерах (например, Firefox) вы можете нажать "всегда разрешать", чтобы больше не запрашивать этот домен. Вы даже можете установить глобальные флаги: например, относительно WebRTC, вы можете установить media.navigator.permission в Firefox или media-stream-camera в хроме. Хотя вы можете заставить пользователей сделать это, это может быть дополнительным доказательством того, что вы не можете программно сделать это, и, следовательно, еще одно "нет".

Что говорят спецификации? Не много о разрешении на высоком уровне. Они скорее определяют, что происходит сразу после разрешения или отказа. В то время как Geolocation и Fullscreen этого не делают, Media Capture, по крайней мере, упоминает, что метод "запрашивает у пользователя разрешение".

Похоже, нет шансов, что однажды вы сможете предотвратить запрос разрешения с помощью кода. Похоже, что мы должны придерживаться других средств, чтобы обеспечить беспроблемный опыт, например, чувственное первое объяснение или учебное пособие, которое поощряет пользователей всегда предоставлять разрешение.

Другие вопросы по тегам