2009-05-11 6 views
3

Wir entwickeln eine html5 Offline-Webapp für den iPod touch/iphone. Wir haben die Manifeste und alles funktioniert ordnungsgemäß, aber wir können nicht herausfinden, warum unsere App nicht wieder geöffnet wird, nachdem der "Tab" in der iPhone Safari geschlossen wurde.iphone offline cached apps verschwinden nach geschlossen in safari?

Aus Gründen des Beispiels ist hier, was funktioniert:

1) in die Offline-fähigen die URL öffnen HTML-Datei in Safari auf dem iPod touch

2) Ausfahrt Safari, Wi-Fi drehen

aus 3) gehe zurück in Safari, wo sich die dynamische Webapp in einem Fenster befindet, rege

4) App funktioniert offline!

jedoch, wenn wir dies tun, werden die Offline-App verschwindet:

5) ein Lesezeichen für die URL der App hinzufügen (oder ein Symbol Startbildschirm)

6) in der Nähe der 'Tab' oder Fenster in Safari

7) öffnen sie das Lesezeichen oder das Symbol Startbildschirm

8) Fehlermeldung: „kann nicht geöffnet werden. Seite: Safari kann nicht öffnen Seite, weil es nicht mit dem Internet verbunden ist“

Ich habe auf das Problem ein wenig gegoogelt, und Sie wissen, wie es geht, werde ich die Antwort finden 2 Sekunden nach dem "Post" hier zu schlagen .. aber sowieso mein Bauchgefühl ist, dass die aktuelle neueste iPhone OS-Version von Safari versucht DNS auf der URL nachzuschlagen und Fehler zu machen, anstatt zu realisieren, dass die lokal gespeicherte App bereits auf dem Gerät ist.

jemand in dieses hineingeraten? Gibt es eine Flagge, die ich in meinem Manifest setzen kann oder etwas, um das zu beheben?

Antwort

2

Sie haben Ihren Server wahrscheinlich nicht richtig konfiguriert. Die Apple Docs machen das nicht klar.

Wenn Ihr Server Apache läuft (wahrscheinlich), müssen Sie diese Datei bearbeiten:
/user/local/apache2/conf/mime.types

Fügen Sie diese Zeile am Ende:
text/cache-manifest manifest

Sie müssen Apache neu zu starten, so dass die Einstellungen werden wirksam. Könnte etwas wie
restart_apache aus der Shell sein.

In diesem Fall muss der Server die Cachedatei mit dem richtigen Inhaltstyp an Sie zurückgeben. Wenn Sie dies nicht tun, wird die Datei wahrscheinlich als "Text" zurückkommen. Wenn es richtig eingestellt ist, kommt es mit einer Art "Cache-Manifest" zurück.

Um zu testen, für welchen MIME-Typ ein Dokument zurückgegeben wird, verwenden Sie web-sniffer.net. Geben Sie die URL zu Ihrer Manifest-Datei ein - Sie sehen das Ergebnis in Inhaltstyp:

0

Es scheint, Safari (und damit das iPhone) erwartet, dass alle Dateien im Manifest aufgeführt werden - sogar die Hauptdatei der App. Ich habe default.asp als Hauptseite meiner App verwendet und dies nicht in das Manifest aufgenommen. Meine App wurde von mydomain.com/myapp/ ausgeführt und somit hat der Browser nie die "default.asp" gesehen.Entsprechend der HTML5-Spezifikation muss die Hauptseite nicht im Manifest sein, aber Safari sieht das anscheinend etwas anders.

Meine Lösung bestand darin, die Verwendung von default.asp und das Aufrufen meiner App app.asp und das Hinzufügen von "app.asp" zum Manifest zu vermeiden. Hoffe das hilft.

1

Tipp: Überprüfen Sie, dass bei Änderungen an den Dateien im Manifest, die Sie im Manifest selbst ändern, angezeigt werden, dass diese Dateien heruntergeladen werden müssen. Und achten Sie auf zwischengespeicherte Dateien, die aufgrund ihrer Ablaufeinstellungen möglicherweise nicht auf Änderungen überprüft werden.