Можно ли заставить iphone/ipod обновлять значок apple-touch после того, как webapp добавлен на главный экран?

Я создал webapp, используя все рекомендуемые ссылки и метатеги для сафари, например.

<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" />

Однако моя проблема заключается в том, что файл startup.png или любой из файлов изображений с яблочным прикосновением обновлен на веб-сервере, похоже, что пользовательский iphone или ipod не будет обновлять обновленный файл после того, как он был сохраненный на своем домашнем экране (я предполагаю, что он как-то кеширован или что-то еще). Он работает, чтобы удалить webapp с главного экрана и снова добавить его. Но есть ли способ сообщить программе, что он должен обновлять эти изображения, не требуя от пользователя удаления и повторного добавления?

Ответ 1

Прошло несколько лет с тех пор, как этот вопрос был задан/ответил, и я здесь, чтобы сообщить, что теперь это возможно!

В новых итерациях iOS значок Apple Touch, который отображается на главном экране, кэшируется так же, как и любой другой контент с сайта. Просто изменив имя изображения, он заставит ярлык рабочего стола обновить значок при следующем запуске ярлыка.

Однако, чтобы соответствовать правилам именования Apple, вы можете просто добавлять переменные URL в ссылку всякий раз, когда вы хотите, чтобы значок был перезагружен и продолжал вызывать изображение apple-touch-icon.png.

То, что я сделал для автоматизации этой проблемы (в PHP), добавляет последнюю измененную дату/время к изображению. Например:

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

Выводится:

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

Теперь вам не нужно ничего делать, но буквально переписать образ, и все остальное произойдет автоматически. Когда вы меняете изображение, измененное время изменяется и не соответствует тому, что пользователь имеет в кеше больше, поэтому он заставляет новую загрузку. Простой!


OLD ANSWER: Я провел много исследований, пытаясь найти способ. К сожалению, это невозможно. Его нужно удалить и снова добавить на главный экран для нового значка, который будет использоваться.

Ответ 2

Я только что протестировал теорию на Iphone 5 и Ipad 2, и это сработало для обоих. Подобно значку, вы можете заставить новый favicon потянуть, изменив href. Вместо href="/apple-touch-icon.png" я использовал href="/apple-touch-icon.png?ver=1.1" и вытащил новый значок при посещении сайта (без удаления и повторного добавления на главный экран).

Ответ 3

просто добавлю мою маленькую "работу вокруг". Были внесены все исправления на мой веб-сайт, чтобы значок правильно отображался в моих закладках на моем собственном IPAD. Позже выяснилось, что раньше на моем сайте побывали продукты Apple, ICON обнаружился нормально. Все мои посещения моего сайта выполнялись как http://mysitename (ref).dk, но когда я добавил http://www.mysitename(ref).dk, IPAD наконец обнаружил это как новый веб-сайт, и яблочная иконка была расположена и правильно представлена в моих закладках. :-) Иаков

Ответ 4

Я видел, что значки обновляются, но я не думаю, что это возможно повлиять на это обновление. Я заметил обновленные значки после того, как телефон был перезагружен, но я не смотрел достаточно, чтобы сказать что-нибудь убедительное.

Ответ 5

Удаление и повторное добавление веб-страницы/webapp на рабочий экран может оказаться недостаточным. Я просто пытался

  • удалить закладку из главного экрана
  • перезагрузить страницу в сафари
  • добавить закладку на рабочий стол

== > он по-прежнему показывает старый значок, который, похоже, где-то кэширован: (

Ответ 6

В моем webapp, если я просто изменил файл startup.png с новым, при первом перезагрузке приложения с главного экрана отображается старое изображение. Закрытие и повторное открытие приложения показывает новый образ startup.png. iOS 4.2.1. Кстати, те же самые аплименты для значка.