Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

153
Vistas
Permiso de geolocalización solicitado cada vez en Safari y navegadores móviles

Tengo un sitio web que pide geolocalización. Solo debería preguntar la primera vez que abre el sitio web, pero noté que si abre el sitio web en un dispositivo móvil (con Chrome o Safari) o en una computadora de escritorio con Safari, el sitio web solicita permiso cada vez que recarga una página.

Si abre el sitio web en una computadora con Chrome, funciona como debería sin ningún problema.

Este es mi código. ¿Cuál es la causa de este problema?

 jQuery(document).ready(function($) { if ("geolocation" in navigator) { console.log("Geolocation availbale"); navigator.geolocation.getCurrentPosition(geolocationSuccess, geolocationError); } else { geolocationError() } function geolocationSuccess(position) { console.log(position.coords.latitude, position.coords.longitude); $.ajax({ url: geolocationParams.ajaxurl, type: 'POST', data: { action: geolocationParams.actionLocalities, lat: position.coords.latitude, lng: position.coords.longitude, }, dataType: 'json', success: function(response) { console.log("Ajax returned", response); $('.homepage-posts-wrapper.third-block-grid').html(response.html); } }) } function geolocationError(err) { console.log(err); $.ajax({ url: geolocationParams.ajaxurl, type: 'POST', data: { action: geolocationParams.actionLocalities, lat: "", lng: "", }, dataType: 'json', success: function(response) { console.log("Ajax returned", response); $('.homepage-posts-wrapper.third-block-grid').html(response.html); } }) } });
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Cuando un navegador decide pedir permiso depende totalmente del navegador y es diferente.

La mayoría de los navegadores hoy en día preguntarán por cada uso individual, a menos que el usuario haga clic en "Recordar esta decisión" en el cuadro de diálogo (ejemplo en Firefox):

Diálogo de permiso de geolocalización en Firefox

La mejor práctica para las aplicaciones web es, por lo tanto, no realizar solicitudes de geolocalización no solicitadas, sino dejar que el usuario inicie la acción haciendo clic en un botón.

Si eso no se ajusta a su caso de uso, puede guardar el resultado de su primera solicitud de geolocalización exitosa (por ejemplo, en una cookie o localStorage ) y usarlo mientras el usuario está en su sitio.

Ejemplo (estoy tratando de apegarme a tu estilo):

 function onWeHaveALocation(latLng) { console.log('Now or not too long ago the user was here:', latLng) } function geolocationError() { console.log('Location unknown.') } function geolocationSuccess(position) { const latLng = { lat: position.coords.latitude, lng: position.coords.longitude } // This is a session cookie. Check the API for different lifetimes. document.cookie = 'geolocation=' + JSON.stringify(latLng) onWeHaveALocation(latLng) } // You might prefer to use a library like https://www.npmjs.com/package/js-cookie instead const geolocationCookieString = document.cookie .split('; ') .find(function (cookieKeyValuePair) { return cookieKeyValuePair.startsWith('geolocation=') }) ?.split('=')[1] if (geolocationCookieString) { const latLng = JSON.parse(geolocationCookieString) onWeHaveALocation(latLng) } else if ("geolocation" in navigator) { navigator.geolocation.getCurrentPosition(geolocationSuccess, geolocationError); } else { geolocationError() }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda