Google Analytics - запрос доступа к местоположению, отображаемый при доступе к каждому сайту

Я использую скрипт Google Analytics для триангуляции местоположения пользователя и его данных при доступе к сайту SharePoint.

Мы добавили скрипт Google Analytics на сайт SharePoint в качестве приложения.

Появится запрос "Разрешить <user> использовать ваше местоположение?" с Да / Нет.

Но у пользователя Microsoft Edge подсказка отображается на каждом сайте даже после нажатия кнопки «Да».

Для получения местоположения мы используем приведенный ниже код сценария,

   navigator.geolocation.getCurrentPosition((position) => {    
                 let latitude = position.coords.latitude;
                 let longitude = position.coords.longitude;
            });

При использовании приведенного выше кода появляется подсказка.

Я ожидаю, что это предотвратит появление запроса при доступе пользователя к сайту.

И есть ли способ добавить сайт в «список одобренных сайтов» в Windows или браузере, чтобы он не запрашивал?


person poovarasan    schedule 23.08.2019    source источник
comment
Какую версию Microsoft Edge вы используете? Пожалуйста, проверьте настройки вашего браузера, чтобы разрешить файлы cookie и JavaScript, чтобы использовать все инструменты, доступные в Google Analytics. Вы можете обратиться к этой статье.   -  person Zhi Lv    schedule 26.08.2019


Ответы (1)


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

Другой способ добиться этого - проверить, предоставлено ли разрешение на определение местоположения, а затем решить, инициализировать ли приложение / заблокировать доступ к приложению.

function getLocation() {
  return new Promise((resolve, reject) => {
    navigator.geolocation.getCurrentPosition(resolve, reject);
  });
}

// then
(async function() {
  try {
    await getLocation();
    // got access
  } catch(e) {
    // no access
  }
})()
person seanplwong    schedule 23.08.2019
comment
Спасибо за помощь. Также я хотел бы знать частоту всплывающих окон? Только 1 раз на пользователя? Один раз за сеанс браузера? Один раз в день? - person poovarasan; 29.08.2019
comment
Он отличается от браузера к браузеру. Chrome запоминает ваш вариант, в то время как firefox требует, чтобы вы явно щелкнули, чтобы запомнить его. Вы также можете использовать API разрешений, но safari еще не поддерживает его, navigator.permissions.query({name:'geolocation'}).then(result => console.log(result.stste)). Взгляните на developer.mozilla.org/en-US/ docs / Web / API / Navigator / permissions - person seanplwong; 30.08.2019
comment
Кстати, расположение на хроме легко сфальсифицировать - person seanplwong; 30.08.2019