Диалоговое окно подтверждения при использовании API блокировки указателя HTML5
Я пытаюсь API блокировки указателя, используя эту демонстрационную страницу. Но во время выполнения кода я вижу, что браузер показывает диалоговое окно подтверждения, спрашивающее, хочет ли пользователь скрыть указатель мыши. Есть ли способ предотвратить появление этого диалогового окна программным способом, чтобы пользователи могли без проблем работать?
1 ответ
Ваш вопрос может быть слишком широким, поскольку на самом деле он сильно зависит от реализации, то есть от конкретного браузера. Это уже слабый ключ к "нет".
Другие веб-API, такие как getUserMedia()
или же getCurrentPosition()
или же requestFullscreen()
также требуется подтверждение, и это может быть очень задумано таким образом. Пользователь должен сохранить контроль в любое время. Особенно с блокировкой указателя, неопытный пользователь может быть легко пойман в ловушку. Это еще один сильный намек на "нет".
В некоторых браузерах (например, Firefox) вы можете нажать "всегда разрешать", чтобы больше не запрашивать этот домен. Вы даже можете установить глобальные флаги: например, относительно WebRTC, вы можете установить media.navigator.permission
в Firefox или media-stream-camera
в хроме. Хотя вы можете заставить пользователей сделать это, это может быть дополнительным доказательством того, что вы не можете программно сделать это, и, следовательно, еще одно "нет".
Что говорят спецификации? Не много о разрешении на высоком уровне. Они скорее определяют, что происходит сразу после разрешения или отказа. В то время как Geolocation и Fullscreen этого не делают, Media Capture, по крайней мере, упоминает, что метод "запрашивает у пользователя разрешение".
Похоже, нет шансов, что однажды вы сможете предотвратить запрос разрешения с помощью кода. Похоже, что мы должны придерживаться других средств, чтобы обеспечить беспроблемный опыт, например, чувственное первое объяснение или учебное пособие, которое поощряет пользователей всегда предоставлять разрешение.