Aplikacja internetowa HTML5 nie buforuje po dodaniu do ekranu głównego w systemie iOS
Aby było jasne, aplikacja internetowa CACHOWAĆ i działa dobrze w trybie offline w Mobile Safari.
Problem polega na dodaniu go do ekranu głównego w telefonie iPhone 4s i iPadzie 2, oba z systemem iOS 6.0.1. Nie działa w trybie offline i daje błąd sieci do połączenia z Internetem, tj. „Nie można otworzyć MYWEBAPP. Nie można otworzyć MYWEBAPP, ponieważ nie jest on połączony z Internetem”
Debugowałem to przez kilka godzin i nie mogę znaleźć rozwiązania. Nie otrzymuję żadnych błędów w konsoli i używam Jonathana Starkakod debugowania
Przetestowałem aplikację na komputerowych przeglądarkach Safari, Chrome i Firefox zarówno online, jak i offline. Jak również Web Inspector z urządzeniami w Safari. Wynik jest taki sam na iPhonie lub iPadzie. Będą buforować aplikację internetową i będą działać w Mobile Safari, ale nie po dodaniu do ekranu głównego. Brak błędów w trybie offline lub online.
O ile wiem, używam najlepszych praktyk:
Dodano nagłówek HTML:<html manifest="photo.appcache">
Eksperymentowałem też z używaniem różnych nazw pliku manifestu, w tym: cache.manifest i offline.manifest, ponieważ czytam, że robi to różnicę, ale w moim testowaniu nie ma znaczenia, jaka jest nazwa tak długo, jak rozszerzenia są. manifest lub .appcache i jest odpowiednio obsługiwany w pliku .htaccess.
Dodano poprawne typy MIME:AddType text/cache-manifest appcache manifest
Próbowałem też:AddType text/cache.manifest manifest
, AddType text/cache.manifest .manifest manifest
, AddType text/cache-manifest .manifest
Nie wierzę, że to zadziałało:AddType text/cache.manifest
ale nie pamiętam. W większości nie miało to znaczenia i utknąłem z:
Manifest appcache z tekstem / manifestem AddType
jak to, co było w mobilnym bojlerze HTML5.
Dodany:
SIEĆ: *
do pliku appcache. Wierzę, że pozwala to na pobieranie wszystkiego, a także na poprawianie działania wszystkich linków.
Próbowałem usunąć ten wiersz:<meta name="apple-mobile-web-app-capable" content="yes">
ponieważ przeczytałem tutaj na temat SO, że rozwiązano problem podobny do mojego, ale mogę potwierdzić, że nie działa w moich testach. Usunięcie tego wiersza lub ustawienie treści na „nie” po naciśnięciu ikony na ekranie głównym spowoduje przekierowanie do Mobile Safari i nie otworzy pełnego ekranu.Ograniczyłem się do tego, że jest to błąd w iOS 6 (aktualnie używam iOS 6.0.1), ponieważ wiem, że dane zostały teraz rozdzielone dla aplikacji internetowych w przeglądarce i tych dodanych do ekranu głównego . Publikuję ten problem tutaj, aby sprawdzić, czy inni programiści napotkali ten sam problem.