google geolocalizacion enablehighaccuracy ejemplo current html5 cross-browser geolocation user-permissions w3c-geolocation

html5 - geolocalizacion - get current position google maps javascript



¿Hay alguna forma de detectar si un usuario ya ha dado permiso para usar navigator.geolocation? (3)

Además de configurar una cookie la primera vez, ¿hay una manera de detectar si un usuario ya ha dado permiso para que navigator.geolocation devuelva la latitud / longitud del navegador?

Si existe, ¿qué es y es el mismo en todos los navegadores o diferente en todos los navegadores?

Este tema ha sido parcialmente respondido en otro lugar.

De acuerdo con la API de GeoLocation - Chrome / Safari - Administración de permisos y diferencias visuales , Chrome solicita un permiso revocable de una sola vez. No he terminado de leer el artículo, pero parece que el almacenamiento de permisos no es una cosa puramente de Chrome.


¿Qué pasa con el uso de localStorage que debería ser compatible con todos los navegadores html5 (que admiten la ubicación geográfica)?

if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(successFunction, errorFunction); } //Get latitude and longitude; function successFunction(position) { var lat = position.coords.latitude; var long = position.coords.longitude; localStorage[''authorizedGeoLocation''] = 1; } function errorFunction(){ localStorage[''authorizedGeoLocation''] = 0; } function checkauthorizedGeoLocation(){ // you can use this function to know if geoLocation was previously allowed if(typeof localStorage[''authorizedGeoLocation''] == "undefined" || localStorage[''authorizedGeoLocation''] == "0" ) return false; else return true; }

Y luego verificas usando la siguiente función:

alert(checkauthorizedGeoLocation());

Este es el jsfiddle si necesita comprobar



Según la spec , no, solo hay tres métodos en navigator.geolocation . Sin embargo, guardar en una cookie o almacenamiento local probablemente sea perfectamente adecuado: el permiso también se almacena en el agente del usuario, por lo que debería funcionar correctamente a medida que el usuario se mueve entre los navegadores.