La aplicación web HTML5 no se almacena en caché cuando se agrega a la pantalla de inicio en iOS
Para ser claros, la aplicación web se está almacenando en caché y funciona bien sin conexión en Mobile Safari.
El problema es cuando se agrega a la pantalla de inicio en un iPhone 4s y iPad 2, ambos con iOS 6.0.1. No funcionará sin conexión y da un error de red para conectarse a Internet, es decir, "No se puede abrir MYWEBAPP. MYWEBAPP no se pudo abrir porque no está conectado a Internet"
He estado depurando esto por varias horas y parece que no puedo encontrar una solución. No recibo ningún error en la consola y estoy ejecutando Jonathan Stark'scódigo de depuración
He probado la aplicación en las herramientas de escritorio de Safari, Chrome y Firefox, tanto en línea como fuera de línea. Así como Web Inspector con los dispositivos en Safari. El resultado es el mismo en iPhone o iPad. Ambos almacenarán en caché la aplicación web y funcionarán en Mobile Safari, pero no cuando se agreguen a la pantalla de inicio. No hay errores fuera de línea o en línea.
Que yo sepa, estoy usando las mejores prácticas:
Se agregó el encabezado HTML:<html manifest="photo.appcache">
También he experimentado con el uso de diferentes nombres para el archivo de manifiesto, incluidos: cache.manifest y offline.manifest cuando leo que hace una diferencia, pero en mis pruebas no importa cuál sea el nombre, siempre que sean las extensiones. manifest o .appcache y se sirve adecuadamente en el archivo .htaccess.
Añadidos tipos correctos de MIME:AddType text/cache-manifest appcache manifest
También he intentado:AddType text/cache.manifest manifest
, AddType text/cache.manifest .manifest manifest
, AddType text/cache-manifest .manifest
No creo que esto haya funcionado:AddType text/cache.manifest
pero no me acuerdo En su mayor parte no me importó y me quedé con:
AddType text / cache-manifest appcache manifest
como lo que estaba en el HTML5 Mobile Boilerplate.
Adicional:
RED: *
al archivo appcache. Creo que esto permite que todo se descargue y que todos los enlaces funcionen.
He intentado eliminar esta línea:<meta name="apple-mobile-web-app-capable" content="yes">
porque leí aquí en SO que resolvió un problema similar al mío, pero puedo confirmar que no funciona en mis pruebas. Al eliminar esta línea o configurar el contenido en "no" al presionar el ícono de la pantalla de inicio, se redirigirá a Mobile Safari y no se abrirá a pantalla completa.Lo he reducido bastante a ser un error en iOS 6 (en realidad estoy usando iOS 6.0.1), porque sé que los datos ahora se han separado para las aplicaciones web en el navegador y los que se agregaron a la pantalla de inicio. . Estoy publicando este problema aquí para ver si otros desarrolladores han encontrado el mismo problema.