2009-12-02 14 views
6

Ich habe eine iPhone Webapp mit PHP erstellt. Die Haupt- (und einzige) Seite enthält die apple-mobile-web-app-fähigen und Apple-touch-Vollbild-Meta-Tags, so dass es Vollbild ausgeführt einmal auf dem Homescreen hinzugefügt werden kann. Es scheint jedoch jedes Mal, wenn ich die App von der Startseite aus starte, die Cache-Version der Seite zu verwenden, anstatt die Seite zu aktualisieren (und natürlich muss die Seite beim Start aktualisiert werden und kann Ajax hier nicht verwenden - muss) dynamisch authentifizieren Sie den Benutzer mit SSO phpCAS). Ich habe keine Manifest-Datei verwendet und habe versucht, Meta-Tags zum Cache ohne Erfolg hinzuzufügen. Weiß jemand, wie man das repariert?iPhone Web App Cache deaktivieren

Danke

Antwort

3

Welche Metatags haben Sie ausprobiert?

sollte Safari sagen, nicht zu cachen, aber ich habe sie nicht ausprobiert.

Sie können JavaScript verwenden, um Ihre "echte" Startseite von der zwischengespeicherten Seite zu laden, indem Sie eine der Standardtechniken verwenden, um die URL eindeutig zu machen, z. B. das Hinzufügen einer Zufallszahl.

Das könnte sogar für die Haupt-Startseite funktionieren, aber ich bezweifle es. Einen Versuch wert, though.


Ich schlage vor, die Cache-Seite nur eine neue Seite laden, wenn es auf dem Sprungbrett ist:

UNTESTED Vorschlag:

window.onload = function() { 
    if (navigator.standalone) { 
    document.location.href = 'http://your.com/whatever.php?randomjunk=1234') } 
} 

so, wenn die Seite im Browser ist, kann es Anweisungen geben beim Speichern auf dem Startbildschirm und wenn es vom Startbildschirm aus gestartet wird, wird die echte Seite geladen.

+0

Danke für die Hilfe. Ja Ich habe die Meta-Tags ausprobiert, die Sie erwähnt haben, aber es lädt immer noch den Cache. Beachten Sie, dass dies nur geschieht, wenn das Tag apple-mobile-web-app-fähig auf YES gesetzt ist (aber ich brauche das, weil das Web im Vollbildmodus laufen soll) und nur wenn ich das Symbol auf dem Springboard verwende. Das Hinzufügen eines zufällig generierten Tokens zur URL könnte das beheben, aber das würde eine Umleitung bedeuten: Es wäre also nicht möglich, die Homepage (die nach dem Hinzufügen des Token get paremeter weiterleitet ...) in Safari Mobile mit einem Lesezeichen zu versehen Sehen Sie, was ich meine ... Am besten – Benoit

+0

Die ungetestete Version (window.onload .....) funktioniert und ist super! Das einzig Negative ist, dass Sie es bei jeder einzelnen Veröffentlichung ändern müssen. Ich habe einen Iframe auf der Seite verwendet, auf die Sie gehen, und er bettet eine Seite ein, die auf die tatsächliche Seite umleitet, die Sie den Nutzern zeigen möchten. Dann habe ich htaccess die Seite ändern, die Redirect auf die Seite weitergeleitet wird? RandomJunk und es wird nicht htaccess Cache, so dass es perfekt funktioniert. –

2

Ich weiß, wenn Sie eine Manifest-Datei einschließen die Hauptseite wird automatisch zwischengespeichert, aber ich glaube nicht, dass es passiert, wenn Sie nur ... Web-App-fähig. Haben Sie versucht, eine Cache-Manifestdatei zu verwenden und Ihre Seite unter "Netzwerk:" aufzulisten, um sie explizit von dieser Methode des Caching auszuschließen? Wenn dies nicht der Fall ist, muss es mit dem Header und den Metainformationen dort zu tun haben.