2010-09-10 10 views
5

Sto lavorando su un'app che utilizza l'API di geolocalizzazione standard W3C ma non riesco a farlo funzionare su Safari sul mio Windows 7 e XP PC . Funziona perfettamente con il mio iPad e il mio iPhone. Funziona perfettamente anche su Chrome (5, 6, 7 e Canary build) e su Firefox (3.6). Non ho un Mac, quindi non posso testarlo. IE non supporta ancora la geolocalizzazione, quindi anche questo è coperto.La geolocalizzazione non funziona su Safari 5.x su Windows 7/XP

Ho creato una versione ridotta e la sto ospitando sul motore di Google Apps in modo da poter dare un'occhiata al codice: http://html5-geolocator.appspot.com/. Tutto il javascript (semplificato) è in html quindi dovresti essere in grado di fare clic con il pulsante destro del mouse e di eseguire il debug/view source.

È praticamente una conversione diretta degli esempi su Google Map API DevGuide. È interessante notare che gli esempi che Google sta ospitando NON FUNZIONANO in Safari 5.0.x su Windows 7 (ma funzionano bene su tutte quelle altre piattaforme, come la mia app), ad esempio http://code.google.com/apis/maps/documentation/javascript/examples/map-geolocation.html presenta esattamente lo stesso problema della mia APP, non appare nessuna mappa, la pagina web rimane grigia.

Attraverso alcuni debug (avviso ("Sono qui") :-) sembra che in Safari esegua navigator.geolocation.getCurrentPosition (myCallback), ma non sembra mai raggiungere myCallback ... come se fosse non ritorna mai da getCurrentPosition. Ho anche visto che se lascio la finestra del browser aperta durante la notte, quando torno ad esso al mattino l'allarme e la mappa sono apparsi (anche se non sempre). Ho anche provato ad aggiungere errorCallback navigator.geolocation.getCurrentPosition (myCallback, errorCallback) ma non esegue mai quello, suggerendo nuovamente che non ritorni mai dalla chiamata getCurrentPosition.

Qualcuno ha idea del perché questo accada?

EDIT: appena fatto un po 'di test, ho aggiunto l'opzione di timeout (navigator.geolocation.getCurrentPosition (mycallback, errorCallback, {timeout: 5000});), e in effetti lo è timeout per tutto il tempo, non importa quanto in alto l'ho impostato in modo che non ritorni mai dal servizio di geolocalizzazione di Google, ma perché ???

+0

Qualcuno qualche indizio? – mvilrokx

+0

Posso confermare esattamente gli stessi risultati. Chrome dolce, Firefox 3.5 dolce, Safari 5 senza dadi. :( – ADAM

+0

Anche FYI sto correndo Snow Leopard – ADAM

risposta

3

Prova ad accendere il wi-fi. Sembra che Safari si affidi alla connessione wi-fi per funzionare. Avevo esattamente gli stessi problemi, ho acceso la mia connessione wi-fi e funziona perfettamente.

Ora sto guardando come rilevare questo - si aggiornerà se trovo una soluzione

+0

Ho il mio wi-fi, tutto il tempo – mvilrokx

+0

Chi dice che questo è un duplicato di altre domande di overflow dello stack e che è necessario attivare il Wi-Fi è sbagliato. Ciò funzionerebbe se si trattasse di Safari 5 su un Mac. Ma questa domanda riguardava Safari 5 su Windows Anche io non sono riuscito a far funzionare la geolocalizzazione su Safari 5 su Windows, attivando Wifi o altri mezzi. – progressnerd

+0

Davvero molto strano, ma in realtà ha funzionato per me quando accendevo la mia connessione wifi! una soluzione. – FoF

Problemi correlati