Этот сайт не может запрашивать разрешение Chrome
Обновлено: 21.11.2024
Используйте API chrome.permissions для запроса объявленных необязательных разрешений во время выполнения, а не во время установки, чтобы пользователи понимали, зачем нужны разрешения, и предоставляли только те, которые необходимы.
Расширение может объявлять как обязательные, так и необязательные разрешения. В общем, вы должны:
- Используйте необходимые разрешения, когда они необходимы для основных функций вашего расширения.
- Используйте дополнительные разрешения, когда они необходимы для дополнительных функций вашего расширения.
Преимущества необходимых разрешений:
- Меньше запросов: расширение может один раз предложить пользователю принять все разрешения.
- Простая разработка: наличие необходимых разрешений гарантировано.
Преимущества дополнительных разрешений:
- Более высокий уровень безопасности: расширения работают с меньшим количеством разрешений, поскольку пользователи включают только те разрешения, которые необходимы.
- Более подробная информация для пользователей: расширение может объяснить, почему ему требуется конкретное разрешение, когда пользователь активирует соответствующую функцию.
- Простое обновление: при обновлении расширения Chrome не отключит его для пользователей, если при обновлении будут добавлены необязательные, а не обязательные разрешения.
Объявите необязательные разрешения в манифесте расширения с помощью ключа optional_permissions, используя тот же формат, что и поле разрешений:
Если вы хотите запрашивать хосты, которые вы обнаруживаете только во время выполнения, включите «https://*/» в поле host_permissions вашего расширения Manifest V3 (или option_permissions для Manifest V2). Это позволяет указать любой источник в Permissions.origins, если он имеет соответствующую схему.
Разрешения, которые не могут указываться как необязательные
Большинство разрешений расширения Chrome можно указать как необязательные, за следующими исключениями.
Разрешение | Описание |
---|---|
"debugger" | API chrome.debugger служит альтернативным транспортом для протокола удаленной отладки Chrome. |
"declarativeNetRequest" | Предоставляет расширению доступ к chrome.declarativeNetRequest API. |
"devtools" | Позволяет расширению расширить функциональность Chrome DevTools. |
"experimental" | < td>Только канал Canary и Dev. Предоставляет расширению доступ к chrome.experimental API.|
"геолокация" | Разрешает расширению использовать API геолокации HTML5. | tr>
"mdns" | Предоставляет расширению доступ к API chrome.mdns. |
"proxy" | Предоставляет расширению доступ к API chrome.proxy для управления настройками прокси-сервера Chrome. |
"tts" | API chrome.tts воспроизводит синтезированные преобразования текста в речь (TTS). |
"ttsEngine" | API chrome.ttsEngine реализует механизм преобразования текста в речь (TTS) с использованием расширение. |
"обои" | Только для ChromeOS. Используйте API chrome.wallpaper для изменения обоев ChromeOS. |
Дополнительную информацию о доступных разрешениях и их предупреждениях см. в разделе Объявление разрешений и предупреждений пользователей.
Запросить разрешения из пользовательского жеста с помощью permissions.request() :
Chrome запрашивает пользователя, если добавление разрешений приводит к другим предупреждающим сообщениям, чем те, которые пользователь уже видел и принял. Например, предыдущий код может привести к следующему запросу:
Gather должен запросить разрешение на использование вашего микрофона и камеры в веб-браузере. Вот как проверить настройки браузера и системы, чтобы обеспечить бесперебойную работу Gather.
Примечание. На данный момент Gather лучше всего поддерживается в Chrome и Firefox на компьютере. Safari для ПК находится в стадии бета-тестирования и имеет ограниченную поддержку.
Настройки Chrome
При первом входе в Gather в Chrome (или если вы очистили историю Chrome) вы увидите всплывающее окно с запросом разрешения на доступ к камере и микрофону. Выберите Разрешить, чтобы обеспечить наилучшие возможности Gather.
Выберите Разрешить в настройках разрешений сайта Chrome, чтобы включить звук и видео.
Если вы заблокируете Gather доступ к вашей камере или микрофону в Chrome, вы увидите значок камеры в правом верхнем углу адресной строки вашего сайта с красным крестиком, указывающим на то, что вы запретили доступ к сайту. Вы можете выбрать этот значок, чтобы изменить свои настройки.
Выберите значок заблокированной камеры или микрофона справа от строки URL в Chrome, чтобы просмотреть и изменить настройки камеры и микрофона.
Выберите параметр, чтобы разрешить Gather доступ к вашей камере. Возможно, вам придется выбрать значок микрофона в предварительном просмотре видео, чтобы изменить разрешения для микрофона. Обновите страницу, чтобы изменения вступили в силу.
Вы можете просмотреть или изменить свои разрешения в любое время, щелкнув значок замка слева от URL-адреса. Включите камеру и микрофон. Если вы не видите Камера и микрофон, выберите Настройки сайта.
Чтобы получить доступ к настройкам конфиденциальности и безопасности, щелкните значок замка рядом с URL-адресом.
Если вы выберете Настройки сайта, настройки Chrome откроются на вкладке "Безопасность и конфиденциальность". Базовый URL-адрес Gather должен отображаться вверху страницы (app.gather.town). Установите для микрофона и камеры значение Разрешить.
В настройках сайта Chrome на вкладке "Безопасность и конфиденциальность" разрешите камеру и микрофон.
Настройки Firefox
При первом входе в Gather в Firefox (или если вы очистили историю Firefox) вы увидите всплывающее окно с запросом разрешения на доступ к камере и микрофону. Выберите Разрешить, чтобы предоставить наилучшие возможности в Gather.
Выберите Разрешить в настройках разрешений сайта Firefox, чтобы включить аудио и видео.
Если вы запретите Gather доступ к вашей камере или микрофону в Firefox, вы увидите значки камеры и микрофона с косой чертой в адресной строке, что означает, что вы отказали в доступе к сайту. Вы можете выбрать их, чтобы изменить свои предпочтения.
Выберите «X» рядом с каждым заблокированным разрешением в настройках конфиденциальности сайта Firefox, чтобы разрешить камеру и/или микрофон. Обновите страницу, чтобы применить обновленные настройки.
Сафари (бета)
Safari (на настольном компьютере, а не на мобильном устройстве) запросит у вас разрешения для камеры и микрофона при первом входе в пространство.
Safari запрашивает разрешения для камеры и микрофона отдельно при первом входе в пространство. Выберите Разрешить, чтобы разрешить Gather использовать ваш микрофон и камеру.
- Если вы выбрали «Не разрешать» и хотите изменить настройку, обновите страницу и повторите попытку.
- Если вы выберете Никогда для этого веб-сайта, вы можете изменить настройку в настройках Safari.
В меню Safari выберите «Настройки» и перейдите на вкладку «Веб-сайты». Прокрутите вниз до «Камера и микрофон». Найдите app.gather.town в списке веб-сайтов справа, затем установите в раскрывающемся меню значение «Разрешить» (или «Спрашивать», если вы хотите получать запросы каждый раз).
Если вы выбрали «Никогда для этого веб-сайта» в Safari и хотите изменить его на «Разрешить» или «Спросить», откройте настройки Safari. Прокрутите до пункта «Камера», затем «Микрофон» и выберите «Разрешить» или «Спросить для «gather.town».
Компания Google объявила о планах сделать запросы разрешений в веб-браузере Chrome менее раздражающими в феврале 2022 года.
Когда пользователь Chrome открывает сайт в Интернете, который запрашивает разрешение, например, картографический сервис, запрашивающий разрешение на определение местоположения, Chrome отображает большую подсказку в верхнем левом углу. Подсказка остается видимой на странице до тех пор, пока пользователь не взаимодействует с ней, не перезагружает страницу или не уходит. В запросе разрешения есть кнопки блокировки и разрешения, а также возможность закрыть его.
Недавно инженеры Google изучили данные телеметрии, чтобы лучше понять, как пользователи взаимодействовали с этими подсказками. Согласно этим данным, запросы на разрешение либо игнорируются, либо отклоняются в среднем 85% пользователей. Еще 9% пользователей выбирают вариант блокировки, чтобы запретить сайту отображать подсказки в будущем; это оставляет менее 7% всех пользователей, которые выбирают разрешить в качестве действия.
Подсказки выделяются и призывают пользователей принять решение, поскольку они остаются видимыми, если пользователь полностью игнорирует подсказку. Срочность подсказки и малое количество пользователей, положительно воспринявших подсказку, побудили Google искать альтернативу.
Начиная с Chrome 98, пользователи Google будут видеть анимированный пользовательский интерфейс чипа в адресной строке браузера, когда сайт запрашивает разрешение. Он отображает значок и имя разрешения, которое запрашивает сайт, и пользователи могут щелкнуть его, чтобы отобразить полное приглашение, которое позволяет им разрешить доступ к запрошенной функции или заблокировать ее.
Чип запроса, отображаемый в Chrome, через короткое время автоматически свернется в значок блокировки, указывая на то, что разрешение временно заблокировано. Chrome отображает значок блокировки в течение нескольких секунд, а затем снова отображает только значок блокировки сайта.
Есть исключения из поведения по умолчанию (всегда есть исключения, не так ли?):
- Chrome отображает полный запрос разрешений, которые он считает "необходимыми" и считает "обычно не спамными". Разрешения: камера, микрофон и камера в паре с микрофоном.
- Chrome отображает полное приглашение, если разрешение было активировано "жестом пользователя при взаимодействии с самим сайтом".
Включить функцию сейчас
Со временем Google предоставляет новые функции всем пользователям Chrome. Пользователи Chrome, которые хотят включить его прямо сейчас, могут сделать это, установив следующие флаги:
Требуется перезагрузка, прежде чем изменения отобразятся в браузере.
Заключительные слова
Это изменение улучшает взаимодействие с пользователем в Chrome, поскольку запросы разрешений больше не отображаются на экране, пока пользователь не взаимодействует с ними. На некоторых сайтах статистика взаимодействия с разрешениями может снижаться. Компания Google объявила, что в будущем может включить более агрессивную автоматическую блокировку в браузере Chrome.
API геолокации позволяет узнать, с согласия пользователя, его местоположение. Вы можете использовать эту функцию для таких вещей, как направление пользователя к месту назначения и геотегирование пользовательского контента; например, отметить место, где была сделана фотография.
API геолокации также позволяет вам видеть, где находится пользователь, и следить за его перемещением, всегда с согласия пользователя (и только пока страница открыта). Это создает множество интересных вариантов использования, таких как интеграция с серверными системами для подготовки заказа к сбору, если пользователь находится рядом.
При использовании API геолокации необходимо знать о многих вещах. В этом руководстве описаны распространенные варианты использования и решения.
- Используйте геолокацию, когда это выгодно пользователю.
- Запрашивать разрешение как четкий ответ на жест пользователя.
- Используйте обнаружение функций, если браузер пользователя не поддерживает геолокацию.
- Не просто научитесь реализовывать геолокацию; узнать, как лучше всего использовать геолокацию.
- Проверьте геолокацию на своем сайте.
- Найдите, где пользователь находится ближе всего к определенному физическому местоположению, чтобы адаптировать его взаимодействие с пользователем.
- Подбирайте информацию (например, новости) к местоположению пользователя.
- Показать положение пользователя на карте.
- Отметьте данные, созданные в вашем приложении, с указанием местоположения пользователя (т. е. геотег изображения).
Недавние исследования пользователей показали, что пользователи с недоверием относятся к сайтам, которые просто предлагают пользователю сообщить свою позицию при загрузке страницы. Итак, каковы наилучшие методы?
Многие из ваших пользователей не захотят сообщать вам свое местоположение, поэтому вам следует придерживаться оборонительного стиля разработки.
- Обрабатывайте все ошибки из API геолокации, чтобы вы могли адаптировать свой сайт к этим условиям.
- Четко и ясно объясните, что вам нужно в этом месте.
- При необходимости используйте запасное решение.
Мы рекомендуем, чтобы ваш сайт или приложение не требовали доступа к текущему местоположению пользователя. Однако если вашему сайту или приложению требуется информация о текущем местоположении пользователя, существуют сторонние решения, позволяющие получить наиболее точное представление о том, где в данный момент находится пользователь.
Эти решения часто работают, просматривая IP-адрес пользователя и сопоставляя его с физическими адресами, зарегистрированными в базе данных RIPE. Эти местоположения часто не очень точны и обычно дают вам положение телекоммуникационного узла или вышки сотовой связи, ближайшей к пользователю. Во многих случаях они могут быть даже не такими точными, особенно если пользователь использует VPN или какой-либо другой прокси-сервис.
Убедитесь, что пользователи понимают, почему вы запрашиваете информацию об их местонахождении и какую пользу они получат. Запрашивать его сразу же на главной странице, когда сайт загружается, может быть неудобно для пользователя.
СЛЕДУЕТ: всегда запрашивать доступ к местоположению жестом пользователя. НЕЛЬЗЯ: спрашивайте об этом на главной странице, пока загружается сайт; это приводит к плохому взаимодействию с пользователем.
Вместо этого дайте пользователю четкий призыв к действию или указание на то, что для операции потребуется доступ к его местоположению. Затем пользователю будет проще связать запрос системы на доступ с только что инициированным действием.
В исследовании, проведенном командой Google Реклама, когда пользователя попросили забронировать номер в отеле в Бостоне для предстоящей конференции на сайте одного конкретного отеля, ему было предложено сообщить свое GPS-местоположение сразу же после нажатия кнопки "Найти и забронировать". " призыв к действию на главной странице.
В некоторых случаях пользователи расстраивались, потому что не понимали, почему им показывают отели в Сан-Франциско, когда они хотят забронировать номер в Бостоне.
Лучше убедиться, что пользователи понимают, почему вы спрашиваете их о местоположении. Добавьте хорошо известное обозначение, одинаковое для всех устройств, например дальномер, или явный призыв к действию, например "Найти рядом со мной".
Используйте дальномер Конкретный призыв к действию, чтобы найти рядом со мной
У вас нет доступа ни к чему, что делают пользователи. Вы точно знаете, когда пользователи запрещают доступ к своему местоположению, но не знаете, когда они разрешают вам доступ; вы узнаете, что получили доступ, только когда появятся результаты.
Рекомендуется «подталкивать» пользователей к действию, если вам нужно, чтобы они завершили действие.
- Настройте таймер, который срабатывает через короткий промежуток времени; 5 секунд — хорошее значение.
- Если вы получили сообщение об ошибке, покажите сообщение пользователю.
- Если вы получили положительный ответ, отключите таймер и обработайте результаты.
- Если по истечении времени ожидания вы не получили положительного ответа, покажите пользователю уведомление.
- Если ответ приходит позже, а уведомление все еще присутствует, удалите его с экрана.
Большинство браузеров в настоящее время поддерживают Geolocation API, но рекомендуется всегда проверять наличие поддержки, прежде чем что-либо делать.
Вы можете легко проверить совместимость, проверив наличие объекта геолокации:
API геолокации предлагает простой однократный метод получения местоположения пользователя: getCurrentPosition() . Вызов этого метода асинхронно сообщает о текущем местоположении пользователя.
Если это первый раз, когда приложение в этом домене запрашивает разрешения, браузер обычно проверяет согласие пользователя. В зависимости от браузера также могут быть настройки, позволяющие всегда разрешать или запрещать поиск разрешений, и в этом случае процесс подтверждения игнорируется.
В зависимости от устройства определения местоположения, используемого вашим браузером, объект положения может фактически содержать намного больше, чем просто широту и долготу; например, он может включать высоту или направление. Вы не можете сказать, какую дополнительную информацию использует эта система определения местоположения, пока она не вернет данные.
API геолокации позволяет получить местоположение пользователя (с согласия пользователя) с помощью одного вызова getCurrentPosition() .
- Получает более точную блокировку пользователя.
- Определяет, что положение пользователя меняется.
- Вы хотите получить более точную информацию о местоположении пользователя.
- Вашему приложению необходимо обновить пользовательский интерфейс на основе новой информации о местоположении.
- Ваше приложение должно обновлять бизнес-логику, когда пользователь входит в определенную зону.
Отслеживание изменений геолокации не является бесплатной операцией.В то время как операционные системы могут вводить функции платформы, позволяющие приложениям подключаться к геоподсистеме, вы, как веб-разработчик, понятия не имеете, какую поддержку имеет устройство пользователя для отслеживания местоположения пользователя, и, пока вы наблюдаете за положением, вы нагружаете устройство большим количеством дополнительной обработки.
После того, как вам больше не нужно отслеживать положение пользователя, вызовите clearWatch, чтобы отключить системы геолокации.
К сожалению, не все поиски местоположения успешны. Возможно, не удалось определить местонахождение GPS или пользователь внезапно отключил поиск местоположения. В случае ошибки вызывается второй необязательный аргумент для getCurrentPosition(), чтобы вы могли уведомить пользователя внутри обратного вызова:
Во многих случаях вам не нужна самая актуальная информация о местоположении пользователя; вам просто нужна приблизительная оценка.
Используйте необязательное свойство maxAge, чтобы указать браузеру использовать недавно полученные результаты геолокации. Это не только ускоряет возврат данных, если пользователь запрашивал данные ранее, но также не позволяет браузеру запускать свои аппаратные интерфейсы геолокации, такие как триангуляция Wi-Fi или GPS.
Если вы не установите время ожидания, ваш запрос текущей позиции может никогда не вернуться.
Если вы хотите найти ближайший к пользователю магазин, вряд ли вам потребуется точность в 1 метр. API предназначен для предоставления приблизительного местоположения, которое возвращается как можно быстрее.
Если вам нужен высокий уровень точности, можно переопределить настройку по умолчанию с помощью параметра enableHighAccuracy. Используйте это с осторожностью: это медленнее разрешается и потребляет больше энергии.
После того как вы настроите геолокацию, вам необходимо:
- Проверьте, как ваше приложение работает в разных географических точках.
- Убедитесь, что ваше приложение корректно деградирует, когда геолокация недоступна.
Вы можете сделать и то, и другое в Chrome DevTools.
Откройте меню ящика консоли и выберите параметр «Датчики», чтобы отобразить ящик датчиков.
Здесь вы можете переопределить местоположение на предустановленный крупный город, ввести собственное местоположение или отключить геолокацию, установив для переопределения значение «Местоположение недоступно».
Если не указано иное, содержимое этой страницы предоставляется по лицензии Creative Commons Attribution 4.0, а образцы кода — по лицензии Apache 2.0. Подробнее см. в Правилах сайта Google Developers.
Читайте также: