Aplicativo Web HTML5 sem armazenamento em cache quando adicionado à tela inicial no iOS
Para ser claro, o aplicativo da Web está em cache e está funcionando bem off-line no Mobile Safari.
O problema é quando ele é adicionado à tela inicial em um iPhone 4s e iPad 2, ambos executando o iOS 6.0.1. Ele não funcionará offline e fornecerá um erro de rede para se conectar à Internet, por exemplo, "Não é possível abrir o MYWEBAPP. O MYWEBAPP não pôde ser aberto porque não está conectado à Internet"
Eu tenho depurado isso por várias horas e parece que não consigo encontrar uma solução. Eu não estou recebendo nenhum erro no console e eu estou correndo Jonathan Starkcódigo de depuração
Eu testei o aplicativo no desktop Safari, Chrome e ferramentas de desenvolvedor do Firefox tanto on-line / off-line. Assim como o Web Inspector com os dispositivos no Safari. O resultado é o mesmo no iPhone ou no iPad. Eles armazenarão em cache o aplicativo da Web e funcionarão no Mobile Safari, mas não quando forem adicionados à tela inicial. Nenhum erro offline ou online.
Até onde sei, estou usando as melhores práticas:
Cabeçalho HTML adicionado:<html manifest="photo.appcache">
Também experimentei usar nomes diferentes para o arquivo de manifesto, incluindo: cache.manifest e offline.manifest, pois li que isso faz diferença, mas no meu teste não importa qual seja o nome, contanto que as extensões estejam. manifest ou .appcache e é servido adequadamente no arquivo .htaccess.
Adicionados tipos MIME corretos:AddType text/cache-manifest appcache manifest
Eu também tentei:AddType text/cache.manifest manifest
, AddType text/cache.manifest .manifest manifest
, AddType text/cache-manifest .manifest
Eu não acredito que isso funcionou:AddType text/cache.manifest
mas não me lembro. Na maioria das vezes, não importava e fiquei com:
Manifesto appcache de manifesto de texto / cache addType
como o que estava no boilerplate móvel do HTML5.
Adicionado:
REDE: *
para o arquivo appcache. Acredito que isso permite que tudo seja baixado e que todos os links funcionem.
Eu tentei remover esta linha:<meta name="apple-mobile-web-app-capable" content="yes">
porque eu li aqui no SO que está resolvido um problema parecido com o meu, mas posso confirmar que ele não funciona no meu teste. Remover essa linha ou definir o conteúdo como "não" ao pressionar o ícone da tela inicial redirecionará para o Mobile Safari e não abrirá a tela cheia.Eu praticamente reduzi a isso a ser um bug no iOS 6 (na verdade estou usando o iOS 6.0.1), porque sei que os dados agora foram separados para aplicativos da Web no navegador e aqueles adicionados à tela inicial . Estou postando este problema aqui para ver se algum outro desenvolvedor encontrou o mesmo problema.