динамическое обновление ios apple-touch-icon из веб-приложения - PullRequest
2 голосов
/ 20 января 2012

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

Моя демонстрационная версия находится здесь: http://charliehield.com/sandbox/IconUpdate

Шаг 1: перейдите кURL на устройстве iOS (не тестировал Android, но должен работать)
Шаг 2: Нажмите кнопку со стрелкой и выберите «Добавить на главный экран»
Шаг 3: Нажмите кнопку «Добавить»

Теперь значок должен быть зеленым.

Я использую простой PHP-оператор if для тестирования, устанавливая $ i = 0;

Итак, если $ i = 0, установите для apple-touch-icon значение GREEN.png, иначе используйте RED.png

Вот мой PHP-код:

<?php $i = 0; ?>
<!doctype html>
<html>

<head>
    <meta charset="utf-8"/>
    <title>IconUpdate</title>
    <!--[if lt IE 9]>
        <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link rel="stylesheet" media="all" href=""/>
    <meta name="viewport" content="width=device-width, initial-scale=1"/>
    <!-- Adding "maximum-scale=1" fixes the Mobile Safari auto-zoom bug: http://filamentgroup.com/examples/iosScaleBug/ -->
    <?php

    if ($i == 0) {

        echo '<link rel="apple-touch-icon-precomposed" href="green.png">';

    } else {

        echo '<link rel="apple-touch-icon-precomposed" href="red.png">';

    }

    ?>

</head>

<body lang="en">

add to home screen for DEMO

</body>

</html>

Как это работает, я могу вручную изменить $ i, и если он не = 0, и я нажимаю значок, открываю страницу в Mobile Safari, а затем нажимаю кнопку «Домой», значок будет RED.png

Мне интересно, есть ли способ «протолкнуть» (из-за отсутствия лучшего слова) новый значок на домашний экран без необходимости повторного открытия страницы?Можно ли это сделать?

Есть идеи / предложения?

Ответы [ 3 ]

1 голос
/ 29 января 2013

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

vivvvi.

0 голосов
/ 09 апреля 2014

Похоже, что в iOS 7.1 новый значок будет автоматически загружен при запуске установленного веб-приложения.

Это то, что я использую для ссылки на значки:

<link rel="apple-touch-icon-precomposed" href="icon.png"/>

<!-- iOS 7 iPad (retina) -->
<link href="/images/icon_152x152.png" sizes="152x152" rel="apple-touch-icon">

<!-- iOS 6 iPad (retina) -->
<link href="/images/icon_144x144.png" sizes="144x144" rel="apple-touch-icon">

<!-- iOS 7 iPhone (retina) -->
<link href="/images/icon_120x120.png" sizes="120x120" rel="apple-touch-icon">

<!-- iOS 6 iPhone (retina) -->
<link href="/images/icon_114x114.png" sizes="114x114" rel="apple-touch-icon">

<!-- iOS 7 iPad -->
<link href="/images/icon_76x76.png" sizes="76x76" rel="apple-touch-icon">

<!-- iOS 6 iPad -->
<link href="/images/icon_72x72.png" sizes="72x72" rel="apple-touch-icon">

<!-- iOS 6 iPhone -->
<link href="/images/icon_57x57.png" sizes="57x57" rel="apple-touch-icon">

<link rel="shortcut icon" sizes="196x196" href="/images/icon_196x196.png">
0 голосов
/ 20 января 2012

В iOS нет способа (на стандартном устройстве ОС, использующем общедоступные API-интерфейсы) ни для собственного приложения, ни для веб-вырезки изменить его значок (кроме обозначения значком собственного приложения).

...