Creé una aplicación web móvil para calificar lugares (como restaurantes, cafés, etc.) en mi ciudad.
Hasta ahora, uso navigator.geolocation.getCurrentPosition() de la API de geolocalización para obtener las coordenadas del lugar en el formulario cuando los usuarios crean la "publicación del lugar". Trato de evitar un máximo en el proceso para obligar al usuario a escribir una dirección que la mayoría de las veces no sabe de memoria.
function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition, showError); } 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; } }En ese momento, mi principal problema es que muchos usuarios han desactivado la ubicación del navegador y les resulta demasiado complicado volver a la configuración para realizar los cambios. Al mismo tiempo me informan que si los invitaran a compartir una ubicación única, lo aceptarían.
Hasta donde yo sé, es imposible hacerlo porque la configuración del navegador toma la delantera en todas las interacciones web. Entonces, una vez que está deshabilitado, no hay vuelta atrás.
Me preguntaba cuál era la forma más sencilla para que el usuario compartiera coordenadas sin tocar la configuración de su navegador.