Подтвердить что ты не робот

Проверьте, отключена ли настройка местоположения в браузере пользователей

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

if (navigator.geolocation)  {
   navigator.geolocation.getCurrentPosition(showPosition);
   } else  {
 x.innerHTML="Geolocation is not supported by this browser.";}
 } 

Есть ли логическое значение, которое я могу обнаружить для их настройки браузера, сообщив мне, разрешено ли местоположение?

спасибо за любые предложения.

4b9b3361

Ответ 1

Вы читали http://www.w3schools.com/html/html5_geolocation.asp

Что вы хотите сделать, это проверить ошибки, чтобы увидеть, разрешили ли они это или отклонили запрос.

function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition,showError);
  } else {
    x.innerHTML = "Geolocation is not supported by this browser.";
  }
}

function showPosition(position) {
  x.innerHTML = "Latitude: " + position.coords.latitude + "<br>Longitude: " + position.coords.longitude;    
}

function showError(error) {
  switch(error.code) {
    case error.PERMISSION_DENIED:
      x.innerHTML = "User denied the request for Geolocation."
      break;
    case error.POSITION_UNAVAILABLE:
      x.innerHTML = "Location information is unavailable."
      break;
    case error.TIMEOUT:
      x.innerHTML = "The request to get user location timed out."
      break;
    case error.UNKNOWN_ERROR:
      x.innerHTML = "An unknown error occurred."
      break;
  }
}

Ответ 2

Нижеприведенный код позволит вам проверить статус разрешений без вызова запроса разрешения navigator.geolocation на Chrome 43+ и Firefox 46+

navigator.permissions && navigator.permissions.query({name: 'geolocation'}).then(function(PermissionStatus) {
    if(PermissionStatus.state == 'granted'){
          //allowed
    }else{
         //denied
    }
})

Вот Ссылка Ссылка