2010-09-10 6 views
5

Estoy trabajando en una aplicación que utiliza la API de geolocalización estándar W3C pero no puedo por mi vida hacer que funcione en Safari en mi PC con Windows 7 y XP . Funciona bien en mi iPad y mi iPhone. También funciona perfectamente en Chrome (5, 6, 7 y la versión Canary) y en Firefox (3.6). No tengo una Mac así que no puedo probarlo con eso. IE aún no es compatible con la geolocalización, por lo que también está cubierto.Geolocalización no funciona en Safari 5.x en Windows 7/XP

Creé una versión reducida y la estoy hospedando en Google Apps Engine para que pueda echar un vistazo al código: http://html5-geolocator.appspot.com/. Todos los javascript (simplificados) están en html, por lo que debería poder hacer clic derecho y depurar/ver el código fuente.

Es casi una conversión directa de los ejemplos en el Google Map API DevGuide. Curiosamente, los ejemplos que aloja Google tampoco funcionan en Safari 5.0.x en Windows 7 (pero funcionan bien en todas esas otras plataformas, al igual que mi aplicación), por ejemplo, http://code.google.com/apis/maps/documentation/javascript/examples/map-geolocation.html exhibe exactamente el mismo problema que mi aplicación, no aparece un mapa, la página web simplemente se mantiene gris.

Mediante alguna depuración (alerta ("Estoy aquí") :-) parece que en Safari, ejecuta navigator.geolocation.getCurrentPosition (myCallback), pero nunca parece llegar a myCallback ... como si nunca regresa de getCurrentPosition. También he visto que si dejo la ventana del navegador abierta durante la noche, cuando vuelvo a ella en la mañana han aparecido la alerta y el mapa (aunque no siempre). También intenté agregar un errorCallback navigator.geolocation.getCurrentPosition (myCallback, errorCallback) pero tampoco lo ejecuta, sugiriendo de nuevo que nunca vuelva de la llamada a getCurrentPosition.

¿Alguien alguna idea de por qué sucede esto?

EDIT: acaba de hacer algunas pruebas más, he añadido la opción de tiempo de espera (navigator.geolocation.getCurrentPosition (MyCallback, errorCallback, {timeout: 5000});), y de hecho lo que el tiempo de espera todo el tiempo, no importa qué tan alto lo configuro para que nunca vuelva desde el servicio de geolocalización de Google, pero ¿por qué ???

+0

Alguien alguna pista? – mvilrokx

+0

Puedo confirmar exactamente los mismos resultados. Chrome dulce, Firefox 3.5 dulce, Safari 5 sin dados. :( – ADAM

+0

También digo que estoy ejecutando Snow Leopard – ADAM

Respuesta

3

Intente encender su wi-fi. Parece que Safari depende de la conexión wi-fi para funcionar. Estaba teniendo exactamente los mismos problemas, conecté mi conexión wi-fi y funciona perfectamente.

ahora estoy mirando la forma de detectar esto - se actualizará si encuentro una solución

+0

Tengo mi wi-fi encendido, todo el tiempo – mvilrokx

+0

Los que dicen que este es un duplicado de otras preguntas de desbordamiento de pila y que necesita activar Wifi están equivocados. Eso funcionaría si esto fuera Safari 5 en una Mac. Pero esta pregunta era para Safari 5 en Windows Yo, también, no he podido obtener la geolocalización para trabajar en Safari 5 en Windows, activando Wifi o cualquier otro medio. – progressnerd

+0

¡Muy extraño, pero realmente funcionó para mí al encender mi conexión wifi! Pero esto no es así una solución. – FoF

Cuestiones relacionadas