一旦将webapp添加到主屏幕,是否可以强制iphone / ipod更新apple-touch-icon?

时间:2011-01-03 20:05:07

标签: iphone html ios safari iphone-standalone-web-app

我使用safari的所有推荐链接和元标记创建了一个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或任何apple-touch-icon图像文件,它似乎不会是用户的iphone或ipod会在更新后的文件中进行检索保存到他们的主屏幕(我猜它是以某种方式缓存的)。它可以从主屏幕中删除webapp并重新添加。但有没有办法让应用程序知道它需要刷新这些图像而不需要用户删除并重新添加它?

6 个答案:

答案 0 :(得分:17)

这个问题被提出/回答已经有几年了,我在这里报告现在可以做到这一点!

在iOS的新版本中,主屏幕上显示的Apple Touch图标就像网站上的任何其他内容一样被缓存。只需更改图像名称,它就会强制主屏幕快捷方式在下次启动快捷方式时刷新图标。

但是,为了与Apple的命名约定保持一致,只要您希望重新加载图标并继续调用图像apple-touch-icon.png,就可以将URL变量附加到引用。

我为自动化此问题所做的工作(在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:我已经对此尝试寻找方法进行了大量研究。不幸的是,这是不可能的。需要将其删除并重新添加到主屏幕,以便使用新图标。

答案 1 :(得分:2)

我刚刚在Iphone 5和Ipad 2上测试了一个理论,它适用于两者。与favicon类似,您可以通过更改href来强制拉出新的图标。 我没有href="/apple-touch-icon.png"使用href="/apple-touch-icon.png?ver=1.1",而是在访问网站时删除了新图标(不删除并重新添加到主屏幕)。

答案 2 :(得分:1)

只会添加我的小“解决方法”。已尝试对我的网站进行各种更正,以使图标正确显示在我自己的IPAD上的书签中。后来发现,在以前有苹果产品访问我的网站时,ICON表现得很好。我对我的网站的访问都是http://mysitename(ref).dk,但是当我添加http://www.mysitename(ref).dk时,IPAD最终发现它是一个新网站,并且在我的书签中找到并正确显示了苹果ICON。 :-) 雅各布

答案 3 :(得分:0)

我看到图标已更新,但我认为不可能以任何方式影响此更新。手机重启后我已经注意到了更新后的图标,但是我还没有看到足够的结论。

答案 4 :(得分:0)

删除并重新添加网页/ webapp到主屏幕可能还不够。 我只是试着

  1. 从主屏幕删除书签
  2. 在safari中重新加载页面
  3. 将书签添加到主屏幕
  4. ==&GT;它仍然显示它似乎在某处缓存的旧图标:(

答案 5 :(得分:0)

在我的webapp中,如果我只是用一个新文件更改startup.png文件,第一次从主屏幕重新加载应用程序时它会显示旧图像。关闭并重新打开应用程序会显示新的startup.png图像。 iOS 4.2.1。 顺便说一句,图标的相同apllies。