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

2024-05-21

我使用 safari 的所有推荐链接和元标记创建了一个网络应用程序,例如。

<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似乎不会在将其保存到他们的设备后检索更新的文件。主屏幕(我猜它以某种方式被缓存了)。它可以从主屏幕中删除 Web 应用程序并重新添加它。但是有没有办法让应用程序知道它需要刷新这些图像而不需要用户删除并重新添加它们?


自从这个问题被提出/回答以来已经有几年了,我在这里报告说现在这是可能的!

在较新的 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" />

现在,您无需执行任何操作,只需覆盖图像即可,其他所有操作都会自动发生。当您更改图像时,修改时间会发生变化,并且不再与用户缓存中的内容匹配,因此会强制进行新的下载。简单的!


旧答案:我对此进行了大量研究,试图找到一种方法。不幸的是,这是不可能的。需要将其删除并重新添加到主屏幕才能使用新图标。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐