2011-01-03 1 views
11

Ich habe eine Webapp mit allen empfohlenen Link-und Meta-Tags für Safari erstellt, z.Ist es möglich, iPhone/iPod zu zwingen, Apple-Touch-Icon zu aktualisieren, sobald Webapp zum Startbildschirm hinzugefügt wird?

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 
<meta name="apple-mobile-web-app-capable" content="yes" /> 
<meta name="apple-mobile-web-app-status-bar-style" content="black" /> 
<link rel="apple-touch-startup-image" href="/startup.png" /> 
<link rel="apple-touch-icon" href="/apple-touch-icon.png" /> 
<link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-ipad.png" /> 
<link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-iphone4.png" /> 

aber mein Problem ist, wenn der startup.png oder einer der apple-touch-Symbol-Image-Dateien auf dem Webserver aktualisiert werden, ist es nicht wie ein iphone des Benutzers erscheinen oder iPod wird die aktualisierte Datei retreive Sobald es auf ihrem Home-Bildschirm gespeichert wurde (ich vermute, es ist irgendwie zwischengespeichert). Es funktioniert, um die Webanwendung vom Startbildschirm zu entfernen und neu hinzuzufügen. Aber gibt es eine Möglichkeit, die Anwendung wissen zu lassen, dass sie diese Bilder aktualisieren muss, ohne dass der Benutzer sie löschen und neu hinzufügen muss?

Antwort

13

Es ist ein paar Jahre her, seit diese Frage gestellt/beantwortet wurde und ich bin hier, um zu berichten, dass dies jetzt möglich ist!

In neueren Versionen von iOS wird das Apple Touch-Symbol, das auf dem Startbildschirm angezeigt wird, wie jeder andere Inhalt der Website zwischengespeichert. Indem Sie einfach den Namen des Bildes ändern, wird die Home-Bildschirm-Verknüpfung dazu gezwungen, das Symbol beim nächsten Start der Verknüpfung zu aktualisieren.

Um jedoch den Namenskonventionen von Apple zu entsprechen, können Sie einfach URL-Variablen an die Referenz anhängen, wenn das Symbol erneut heruntergeladen werden soll, und weiterhin das Bild apple-touch-icon.png aufrufen.

Was ich getan habe, um dieses Problem (in PHP) zu automatisieren, ist das zuletzt geänderte Datum/Uhrzeit an das Bild anzuhängen. Zum Beispiel:

<link rel="apple-touch-icon" href="apple-touch-icon.png?m=<?php echo filemtime('apple-touch-icon.png'); ?>" /> 

Diese Ausgänge:

<link rel="apple-touch-icon" href="apple-touch-icon.png?m=1415832495" /> 

Nun, Sie müssen nichts tun, sondern buchstäblich das Bild überschreiben und alles andere automatisch geschehen wird. Wenn Sie das Bild ändern, ändert sich die geänderte Zeit und passt nicht mehr zu dem, was der Benutzer im Cache hat, sodass ein neuer Download erzwungen wird. Einfach!


ALTE ANTWORT: Ich habe eine Tonne der Forschung in diesen einen Weg zu finden versuchen, getan. Leider ist das nicht möglich. Es muss entfernt und erneut auf dem Startbildschirm hinzugefügt werden, damit das neue Symbol verwendet werden kann.

+0

Es gibt eine private API, um dies zu tun, aber ich denke nicht, dass wir es verwenden dürfen. Wenn Sie bemerken, dass die Kalender-App das Symbol täglich aktualisiert hat, ändern Sie das Datum. –

+0

Innerhalb einer App gibt es möglicherweise eine Möglichkeit, dies zu tun. Das ursprüngliche Poster fragt jedoch, ob es möglich ist, das Symbol zu ändern, wenn Sie eine Website auf dem Startbildschirm und nicht aus einer App als Lesezeichen speichern. –

+0

Ich werde widerwillig akzeptieren "nicht möglich" als Antwort. – TKTS

0

Ich habe gesehen, dass Icons aktualisiert wurden, aber ich denke nicht, dass es möglich ist, dieses Update in irgendeiner Weise zu beeinflussen. Ich habe die aktualisierten Symbole nach dem Neustart des Telefons bemerkt, aber ich habe nicht genug nachgesehen, um etwas Schlüssiges zu sagen.

0

Entfernen und erneut Hinzufügen der Webseite/Webapp auf dem Startbildschirm möglicherweise nicht einmal ausreichen. Ich habe gerade versucht zu

  1. das Lesezeichen aus dem Homescreen
  2. laden Sie die Seite in Safari

==> es zeigt immer noch das alte Symbol es scheint Homescreen

  • fügen Sie das Lesezeichen löschen zu irgendwo zwischengespeichert :(

  • +0

    funktioniert es auf meinem iPhone 5, wenn Sie zuerst auf die Schaltfläche tippen, um Homescreen zu markieren, dann abbrechen, dann die Seite neu laden, dann erneut tippen Sie auf die Schaltfläche, um auf dem Homescreen zu merken - jetzt sollten Sie das aktualisierte Bild sehen –

    0

    Innerhalb meiner Webapp, wenn ich nur die Datei startup.png mit einem neuen, beim ersten Mal neu laden die App von der Startseite ändert, zeigt es die ol d Bild. Durch Schließen und erneutes Öffnen der App wird das neue Bild startup.png angezeigt. iOS 4.2.1. Übrigens, die gleichen Anwendungen für die Ikone.

    2

    Ich habe gerade eine Theorie auf dem Iphone 5 und Ipad 2 getestet, und es funktionierte für beide. Ähnlich wie beim Favicon können Sie das neue Favicon zum Ziehen zwingen, indem Sie den href ändern. Anstelle von href="/apple-touch-icon.png" habe ich href="/apple-touch-icon.png?ver=1.1" verwendet und es zog das neue Symbol, wenn die Website besucht wurde (ohne zu löschen und neu auf dem Startbildschirm hinzuzufügen).

    +0

    Dies löst das Problem und funktioniert auch für Apple-Touch-Startup-Image, das auch die gleichen Probleme wie Apple-Touch-Icon hat. (Bestätigt in iOS 8) – Jay

    Verwandte Themen