Tengo una aplicación que hace un simple libro de texto del navegador.la geolocalización.watchPosition(…) que funciona muy bien en iOS 5.x tanto en Safari y como una aplicación web (uso de apple-mobile-web-app-capaz de la etiqueta meta).

Sin embargo, en iOS6, Geolocalización no funciona en la webapp. Todavía funciona en safari como se esperaba, pero cuando ejecuto la aplicacion web, que me lleva para la ubicación de la autorización, entonces silenciosamente falla. Veo el icono de ubicación, pero no hay eventos lanzados desde watchLocation. Me sale error de eventos o cualquier lugar de los acontecimientos.

Alguien ha topado con este? Las soluciones? Es, definitivamente, iOS6 específicos y también específicos para el apple-mobile-web-app-capaz/webapp.

  • Acaba de actualizar a iOS 6.1.1 y esto todavía parece ser un problema.
InformationsquelleAutor Greg Wilson | 2012-09-19

11 Comentarios

  1. 13

    Este es sin duda un error, pero he encontrado un trabajo a su alrededor. Usted no va a gustar esto, pero al menos va a conseguir su aplicación web funcione de nuevo. Es necesario examinar el Agente de Usuario de encabezado y si contiene «iPhone 6», entonces no use:

    <meta content="yes" name="apple-mobile-web-app-capable" />

    Sí, esto significa que no va a ser una verdadera aplicación web y obtendrá el Safari de encabezado y pie de bares. Pero al menos va a hacer que tu aplicación funcione de nuevo desde la pantalla de inicio. Usted puede ver cómo funciona esto por ir a mi sitio http://www.nextbus.com.

    Nota que parece que Google encontré con este problema. Trate de ir a la maps.google.com y, a continuación, agregar la aplicación web para tu pantalla de inicio. La geolocalización va a trabajar para él, pero que se ve de hecho el feo Safari encabezado y pie de página bares.

    Por favor quejarse en voz alta de Apple!

    • Sí – que es lo que hice por ahora – me acaba de quitar la manzana-mobile-web-app-capaz de la etiqueta meta así que, a pesar de geolocalización ahora funciona, no tengo el visual de los beneficios de un verdadero iOS chromeless web app. Sospecho que muchos otros van a tropezar sobre esto en los próximos días. Gracias por tu sugerencia.
  2. 3

    La buena noticia es que he hecho… he descubierto. La mala noticia es: a alguien más inteligente que me va a tener que decirle a usted por qué esto funciona, mientras que cualquier otra variación de esta solución o cualquiera de las otras soluciones que no funcionan. Esta fue una trabajada victoria, pero estoy demasiado avergonzado para decir cuántas horas (días) me llevó a darme cuenta de esto. Sin más preámbulos:

    Nota: por alguna razón, esto no parece funcionar de manera tan consistente si la ejecución de este código se retrasa en algún momento después de que inicialmente el lanzamiento de la aplicación. Así que, esta es la PRIMERA cosa que puedo ejecutar en mi método de inicialización.

    Nota: lo único que he añadido a mi aplicación, cuando necesito usar los datos de geolocalización (que, para mí, se lleva a cabo después de la inicialización de varias otras Clases/Objetos Literales), es comprobar que las coordenadas de latitud/longitud valores. Si existen, continuar; Si no, ejecute el método de geolocalización de nuevo, y luego continuar.

    Nota: Una de las cosas que me tiró por un largo tiempo fue que yo sólo lo necesario para obtener la posición actual del usuario. No tenía la necesidad de seguimiento de los movimientos de usuarios. He probado varias iteraciones de este con el getCurrentPosition() método. Por la razón que sea, no funciona. Así que, esta es la solución que se me ocurrió. Correr es como si usted va a la pista de la ubicación del usuario (para obtener su ubicación en el primer lugar), entonces una vez que usted ha conseguido su ubicación, desactive la watchPosition ID para evitar que el seguimiento de ellos. Si necesita hacer un seguimiento de su ubicación a medida que pasa el tiempo, usted puede, por supuesto… no claro el watchPosition ID.

    HTH. De todo lo que he estado leyendo, hay una gran cantidad de desarrolladores que necesitan esta funcionalidad para trabajar para sus aplicaciones de misiones importantes. Si esta solución no funciona para usted, no estoy seguro de qué otra dirección que puede dar. Habiendo dicho eso, he probado esta varios cientos de veces y esta correctamente recupera la ubicación de los usuarios en una WebApp (navigator.independiente) en iOS 6.

    • esto es excelente! viendo como ioS 6.1 es todavía buggy con la geolocalización alguien tiene un ejemplo de los de arriba para que se ejecutan en watchPosition modo?
  3. 2

    aquí hay un video de mí replicar el error y la demostración de un trabajo a su alrededor. Este error parece existir clima de usar la web, de la aplicación de la etiqueta meta o no.

    http://youtu.be/ygprgHh6LxA

    Actualización: 121212 – IOS 6.1 Beta 3 pruebas muestran que el error es que todavía no se ha resuelto…

    Actualización: 122012 – IOS 6.1 Beta 4, la prueba demuestra que el error es que todavía no se ha resuelto…


    Actualización: 031113 – Ejemplo De Replicación

    Bien, es un tema sencillo de replicar en tan sólo unos segundos. Creo que no es un safari, pero de IOS problema. Es casi como si de Google, escribió la bios para el IOS para satisfacer la W3C html geo ubicación de especificaciones y se la llevaron cuando IOS6 golpeó con el pie en el autobús.
    El uso de un dispositivo IOS, vaya aquí:

    http://uc.myaesc.com/geoloctestorig.htm

    Haga clic en inicio, reloj debe devolver resultado casi cada segundo.
    A continuación, haga clic en el enlace de Google a salir de esta página.
    Luego del navegador del usuario botón atrás para volver
    Haga clic en inicio.
    Reloj volverá de 1 a 3 los registros y colgar.
    Minimizar safari (botón de inicio) y, a continuación, restaurar (icono de safari); deja de colgar

    Que es. hasta que no se cuelgue, el problema sigue.

    Marca

    ACTUALIZACIÓN:

    IOS 7.1 se ha solucionado el problema…

    • Enlace parece estar roto
  4. 1

    Parece que solo funciona una vez, entonces cualquier secundaria error de llamadas. Una alternativa es almacenar en caché el resultado y el uso de la caché de resultados, si usted tiene uno, aunque esto significa que usted no puede tener una aplicación que sigue a alguien en su posición.

  5. 1

    Esto no es exactamente una respuesta como parece que la Pantalla de Inicio de aplicaciones en ios6 tiene algunos errores relacionados con la Geolocalización, pero he encontrado el siguiente enlace muy útil. Explica que como la Pantalla de Inicio de aplicaciones están ahora almacenados como aplicaciones nativas, ellos tienen su propio almacenamiento/almacenamiento en caché.

    De geolocalización de obras en la primera iteración, pero no se puede actualizar a partir de entonces. el trabajo es eliminar la siguiente etiqueta meta para que las Pantallas de Inicio de la aplicación se ejecute en el modo Explorador (no estoy seguro de si es exactamente llamar a un modo de navegación). La aplicación por desgracia render con el navegador encabezados y pies de página, pero GeoLocationwill estar funcionando de nuevo.

    <meta content="yes" name="apple-mobile-web-app-capable" />

    iOS 6 Geolocalización y Locales de Almacenamiento de Datos

    De datos»en la Pantalla de Inicio de aplicaciones están ahora almacenados como aplicaciones nativas. Aplicaciones nativas tienen cada uno su propio sandbox donde se encuentran sus datos, copia de seguridad y restaurar a. Antes de iOS 6, la Pantalla de Inicio de aplicaciones de datos compartidos con la misma aplicación que se ejecuta en el navegador. Si el usuario borra la caché del navegador, la Pantalla de Inicio de la versión de la aplicación de perder sus datos.Con iOS 6, la Pantalla de Inicio de aplicaciones en el que los datos se guardan en una caja de arena como aplicaciones nativas. Copias de seguridad y restauraciones de manejar correctamente los datos y borrar caché en el navegador no va a afectar a ellos.»

  6. 0

    Estoy teniendo el mismo problema. Parece watchPosition es simplemente fallando después de la primera posición es recibido. No he encontrado un trabajo en torno todavía, pero quería confirmar que estaba experimentando problemas.

    El uso de estas muestras:
    http://www.w3schools.com/html/html5_geolocation.asp

    Puedo obtener los resultados esperados en ios5 pero ios6 caer el balón con watchPosition.

    • Me estoy planteando la cuestión en el apple dev foro para ver si alguien tiene alguna buena info.
    • Acabo de visitar la url de arriba de mi dispositivo. Se está ejecutando iOS 6 y cuando hice clic en «Probar» que muestra un mapa. Se supone que hacer algo más?
    • Tratar de la virtud de la Geolocalización objeto – Otros Métodos interesantes y vamos a andar… lo que debe ver es la posición coords cambiando ligeramente a medida que usted se mueve alrededor.
    • Parece como si puede estar relacionado con javascript devoluciones de llamada. developers.facebook.com/bugs/… Hay es un éxito de devolución de llamada para watchPosition. Todavía hurgando.
    • Acabo de intentar y aparece mi Latitud & la Longitud.
    • Cuando usted camina alrededor de él continuamente los cambios de la lat/lon?
    • Sí, he seguido los mismos pasos y verá cambiar después de moverse en iOS 6 con un iPhone 4S. Me di cuenta de una cosa que es posible que desee comprobar: tuve que ir a Ajustes -> Privacidad> Ubicación y permitir explícitamente el Safari para los Servicios de Ubicación. Puede darse el caso de que Apple se convirtió esta desactivado por defecto con la actualización de iOS 6.
    • que es extraño. He vuelto a revisar la ubicación de preferencias, y safari está permitido. ios6-4s puedo obtener una primera lat/lon pero no actualiza. Si puedo salir de safari, a continuación, vuelva a abrirlo, se trota a través de un par de puntos a medida que cambia la precisión, pero luego se queda parado sin cambiar de nuevo. Quizás hay algo de caché pasando…
    • La cuestión que planteó anteriormente es específico para webapps (html apps con el apple-mobile-web-app-capaz de meta). La geolocalización está trabajando bien en el navegador Safari en iOS-es sólo cuando se guarda la aplicación a la pantalla de inicio con el atributo de arriba que hace que se ejecute en pantalla completa, chromeless aplicación de la falla.

  7. 0

    Puedo confirmar que tengo el mismo problema al ejecutar mi aplicación web en pantalla completa.

    Curiosamente, cuando Safari en pantalla Completa le pidió permiso para usar mi ubicación, el sitio web título fue ‘web’ más que el título de la página web, como en las versiones anteriores de iOS.

    La eliminación de la «apple-mobile-web-app-capaz» de la etiqueta meta está muy bien, y funciona, pero solo si es «Añadir a Pantalla de inicio» de nuevo. Tenemos ~7000 diaria de los usuarios que ya han añadido el icono de su pantalla de inicio. Llegar a hacerlo de nuevo, a continuación, potencialmente de nuevo cuando una solución es implimented no es muy grande.

  8. 0

    Esto parece ser fijado en virtud de iOS 6.1! Él no estaba en la reciente betas, pero la final de hoy 6.1 de la liberación parece ser bueno con mis pruebas.

    • Ok – no es 100% fijo. Me estoy haciendo una localización inicial del evento, en el que no estaba sucediendo antes de la 6.1, pero yo no estoy posteriores eventos de watchlocation. Estoy recibiendo sólo la primera. Voy a trabajar en soluciones alternativas y volver a este hilo poco (soy el cartel original)
    • Con iOS 6.1 en mi iPhone 4s se me puede llegar a watchPosition de forma fiable sólo si Wi-Fi está desactivada cuando inicio mi web app.
  9. 0

    Usted debe tener cuidado de no proteger el contenido cargado. Para mí la carga de todos los javascript, imágenes y css de seguro contexto resuelto el problema con safari.

Dejar respuesta

Please enter your comment!
Please enter your name here