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é ???
Qualcuno qualche indizio? – mvilrokx
Posso confermare esattamente gli stessi risultati. Chrome dolce, Firefox 3.5 dolce, Safari 5 senza dadi. :( – ADAM
Anche FYI sto correndo Snow Leopard – ADAM