15

Poza ustawianiem ciasteczka za pierwszym razem, czy istnieje sposób na wykrycie, czy użytkownik dał już pozwolenie dla navigator.geolocation na zwrócenie długości/długości przeglądarki?Czy istnieje sposób na wykrycie, czy użytkownik zezwolił już na korzystanie z navigator.geolocation?

Jeśli jest, co to jest i czy jest takie samo we wszystkich przeglądarkach lub w różnych przeglądarkach?

Temat ten został partially answered elsewhere

Według GeoLocation API – Chrome/Safari – Permission management and Visual Differences, Chrome prosi o revokable zgody jednorazowej. Nie skończyłem czytać tego artykułu, ale wydaje się, że przechowywanie uprawnień nie jest zadaniem czysto Chrome.

Odpowiedz

22

Co na temat korzystania localStorage które powinny być wspierane przez wszystkie przeglądarki HTML5 (czyli geolokalizacja wsparcie)

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; 
} 

A potem check pomocą poniższego funkcję:

alert(checkauthorizedGeoLocation()); 

This is the jsfiddle if you need to check

+0

Teraz jesteśmy gdzieś !! – bugmagnet

+0

Mam nadzieję, że to pomoże :) daj mi znać, jeśli to jest to, czego potrzebujesz. –

+0

Mehdi, daję ci nagrodę. Zostało mi wskazane, że wersja HTML, która daje mi geolokalizację, jest tą, która daje mi również localStorage. – bugmagnet

4

Zgodnie z spec, nie - są tylko trzy metody na navigator.geolocation. Jednak zapisywanie do pliku cookie lub lokalnej pamięci jest prawdopodobnie całkowicie odpowiednie - uprawnienie jest również przechowywane w komputerze użytkownika, więc powinno działać poprawnie, gdy użytkownik porusza się między przeglądarkami.

+0

Jednak sekcja "Monit o pozwolenie" w https://developer.mozilla.org/en-US/docs/WebAPI/Using_geolocation?redirectlocale=en-US&redirectslug=Using_geolocation może sugerować, że co najmniej jedna przeglądarka ma mechanizm do przechowywania uprawnień. – bugmagnet

+0

Wygląda na to, że dotyczy tylko dodatków do Firefoksa, a nie ogólnej treści internetowej. – AshleysBrain