Je suis en train d'écrire une application web à utiliser hors ligne sur iOS. J'ai créé un manifeste, je le sers en tant que text/cache-manifest
, et généralement, cela fonctionne bien, lorsque je l'exécute dans Safari.
Si je l'ajoute en tant qu'application sur mon écran d'accueil, puis active le mode Avion, l'application ne peut pas s'ouvrir du tout - j'obtiens une erreur et il propose de fermer l'application. (Je pensais que c'était le but entier d'une application hors ligne!)
-
Quand je charge l'application une première fois en étant en ligne, je peux voir dans mes journaux qu'elle demande chaque page répertoriée dans le manifeste.
-
Si je désactive le mode Avion et charge l'application, je peux voir que le premier fichier demandé est mon fichier main.html (qui est à la fois répertorié dans le manifeste, et a l'attribut
manifest=...
). Ensuite, il demande le manifeste, ainsi que tous mes autres fichiers, obtenant des codes 200 pour tous (et 304 pour tout ce qui est demandé une deuxième fois pendant ce chargement). -
Quand je charge la page dans Chrome, et que je clique partout, les journaux montrent que la seule chose à laquelle il essaie d'accéder sur le serveur est "/favicon.ico" (qui est un 404, et que je ne pense pas qu'iOS Safari essaie de charger de toute façon). Tous les fichiers répertoriés dans le manifeste sont valides et servis sans erreur.
-
L'inspecteur Chrome répertorie, sous "CACHE D'APPLICATION", tous les fichiers mis en cache que j'ai répertoriés comme je m'y attends. L'ensemble des fichiers représente environ 50 Ko, bien en dessous de toute limite sur les ressources hors ligne que j'ai trouvée.
Est-ce que cela est censé fonctionner, c'est-à-dire suis-je censé pouvoir créer une application iOS hors ligne en utilisant uniquement HTML/CSS/JS? Et où dois-je chercher à comprendre pourquoi cela échoue à fonctionner hors ligne?
(Apparenté mais ne semble pas tout à fait le même pour moi, car il s'agit de Safari et non d'une application autonome : "Can't get a web app to work offline on iPod")