Pracuję nad aplikacją korzystającą ze standardowego interfejsu API geolokalizacji W3C, ale nie mogę na całe życie uruchomić go w Safari na moim komputerze z systemem Windows 7 i XP . Działa dobrze na moim iPadzie i moim iPhonie. Działa również idealnie na Chrome (5, 6, 7 i wersja Canary) i Firefox (3.6). Nie mam komputera Mac, więc nie mogę go przetestować. IE nie obsługuje jeszcze geolokalizacji, więc jest objęta.Geolokalizacja nie działa w przeglądarce Safari 5.x w systemie Windows 7/XP
Utworzyłem uproszczoną wersję i hostuję ją w Google Apps Engine, dzięki czemu można rzucić okiem na kod: http://html5-geolocator.appspot.com/. Wszystkie (uproszczone) javascript znajdują się w html, więc powinieneś być w stanie kliknąć prawym przyciskiem myszy i debugować/wyświetlić źródło.
Jest to prosta konwersja przykładów na Google Map API DevGuide. Co ciekawe, przykłady hostowane przez Google również NIE DZIAŁAJĄ w Safari 5.0.x na Windows 7 (ale działają dobrze na wszystkich innych platformach, takich jak moja aplikacja), na przykład http://code.google.com/apis/maps/documentation/javascript/examples/map-geolocation.html wykazuje dokładnie ten sam problem co moja aplikacja, nie pojawia się żadna mapa, strona pozostaje tylko szara.
Przez niektóre debugowanie (alert ("Jestem tutaj") :-) wygląda na to, że w Safari wykonuje polecenie navigator.geolocation.getCurrentPosition (myCallback), ale nigdy nie osiąga wartości myCallback ... tak jakby to było nigdy nie zwraca z getCurrentPosition. Widziałem również, że jeśli zostawiam okno przeglądarki otwarte przez noc, kiedy wrócę do niego rano, pojawi się alert i mapa (choć nie zawsze). Próbowałem również dodać errorCallback navigator.geolocation.getCurrentPosition (myCallback, errorCallback), ale nigdy też tego nie robi, ponownie sugerując, że nigdy nie wraca z wywołania getCurrentPosition.
Czy ktoś ma jakieś pomysły, dlaczego tak się dzieje?
EDYTOWANIE: Po kilku testach dodałem opcję limitu czasu (navigator.geolocation.getCurrentPosition (myCallback, errorCallback, {timeout: 5000});), i rzeczywiście to limit czasu przez cały czas, bez względu na jak wysoko to ustawiłem, aby nigdy nie powracało z usługi geolokalizacji Google, ale dlaczego?
Czy ktoś ma jakieś wskazówki? – mvilrokx
Mogę potwierdzić dokładnie takie same wyniki. Chrome słodki, Firefox 3.5 słodki, Safari 5 bez kości. :( – ADAM
Również FYI używam Snow Leopard – ADAM