2012-07-30 10 views
14

Ho un problema con window.navigator, sto ottenendo il codice di errore 1, "ha negato utente Geolocalizzazione" ogni volta che si esegue il seguente codice in un file HTML locale:html navigatore

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

l'uscita viene dalla funzione di errore, PositionError contiene:

code: 1 
message: "User denied Geolocation" 

Questo non succede se l'HTML che contiene è servita da qualche server.

È previsto? C'è un modo per usare navigator da un html locale? Sto provando a scrivere alcune app per dispositivi mobili, ma cerco anche di evitare la rete quando possibile.

grazie.

+1

Che browser stai utilizzando? – Adam

risposta

23

Se si utilizza Chrome, si prega di dare un'occhiata alla risposta qui sotto:

HTML 5 Geo Location Prompt in Chrome

E sembra questa è una restrizione di sicurezza per il protocollo file. Sembra che sarà necessario ospitarli localmente da un server.

+1

Una soluzione davvero semplice: se hai installato Python, vai alla directory root del tuo progetto in un terminale/riga di comando/shell ed esegui 'python -m SimpleHTTerver'. (Fonte: http://stackoverflow.com/questions/530787/simple-http-web-server) –

+0

Nota: anche dopo aver utilizzato un server e aver aggiornato la pagina, la console potrebbe essere vuota. Cerca una piccola barra o finestra nella parte superiore del browser che richiede l'autorizzazione per i servizi di localizzazione. – givanse

+3

Anche 'php -Slocalhost: 3000' funziona. – manafire

4

Una semplice risposta che ha lavorato per me era quello di cambiare semplicemente il mio url da

localhost 

a

127.0.0.1 

Chrome mi ha chiesto di confermare che volevo condividere le mie impostazioni di posizione e sono stato via!

Problemi correlati