2012-07-30 21 views
14

Mam problem z window.navigator, Dostaję kod błędu 1, „User zaprzeczył Geolokalizacja” ilekroć uruchomić poniższy kod jako lokalnego pliku html:html nawigator „Użytkownik odmawia Geolokalizacja”

navigator.geolocation.getCurrentPosition(function(position) { 
     console.log(position); 
    }, function(positionError) { 
     console.log(positionError); 
    }); 

wyjście jest pochodząca z funkcji błędu, positionError zawiera:

code: 1 
message: "User denied Geolocation" 

nie stanie, jeśli zawierający html serwowane jest od jakiegoś serwera.

Czy to jest oczekiwane? Czy jest jakiś sposób użycia nawigatora z lokalnego html? Próbuję napisać aplikację mobilną, ale staram się także unikać sieci, gdy tylko jest to możliwe.

dzięki.

+1

Z jakiej przeglądarki korzystasz? – Adam

Odpowiedz

23

Jeśli używasz Chrome, proszę spojrzeć na poniższą odpowiedź:

HTML 5 Geo Location Prompt in Chrome

Wydaje się, że jest to ograniczenie bezpieczeństwa dla protokołu file. Wygląda na to, że musisz go hostować lokalnie z serwera.

+1

Naprawdę proste rozwiązanie: jeśli masz zainstalowany Python, przejdź do katalogu głównego projektu w terminalu/linii poleceń/powłoki i uruchom 'python -m SimpleHTTPServer'. (Źródło: http://stackoverflow.com/questions/530787/simple-http-web-server) –

+0

Uwaga: nawet po użyciu serwera i odświeżeniu strony konsola może być pusta. Wyszukaj mały pasek lub okno u góry przeglądarki, prosząc o pozwolenie na usługi lokalizacyjne. – givanse

+3

'php -Slocalhost: 3000' również działa. – manafire

4

Prosta odpowiedź, że pracował dla mnie było po prostu zmienić URL z

localhost 

do

127.0.0.1 

Chrome poprosił mnie, aby potwierdzić Chciałem podzielić swoje ustawienia lokalizacji i byłem z dala!