Как показать местоположение пользователя без нажатия кнопки, если разрешение уже дано - PullRequest
0 голосов
/ 11 июля 2019

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

Я могу показывать местоположение в форме широты и долготы, но только когда я нажимаю на кнопку, даже если пользователь дал разрешение .. Как я могу показать это, не нажимая на кнопку и не перезагрузив страницу ..

Sidenote: точно так же как Swiggy или Zomato, который показывает местоположение каждый раз, когда мы открываем приложение.

var x = document.getElementById("demo");
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;
}}

1 Ответ

0 голосов
/ 11 июля 2019

Простой способ - вызвать getLocation() на window.load. Вы также можете прикрепить его к тегу <body> следующим образом <body onload="getLocation()">.

var x = document.getElementById("demo");

window.onload = getLocation;

function getLocation() {
  if (navigator.geolocation) {    
navigator.geolocation.getCurrentPosition(showPosition, showError);
x.innerHTML = "Latitude: " + position.coords.latitude + 
  "<br>Longitude: " + position.coords.longitude;
  } else { 
    x.innerHTML = "Geolocation is not supported by this browser.";
  }
}

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;
}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...