如何同时使用Web App Manifest和Application Cache?

时间:2018-04-18 01:51:43

标签: html5 single-page-application html5-appcache web-app-manifest

我正在尝试构建一个可以在离线时启动的简单单个HTML页面(在Android上,如果重要的话)。

我正在使用Web App Manifest为应用添加一个名称,以便添加到主屏幕并显示全屏而没有浏览器镶边。这很有效。

<!DOCTYPE html>
<html>
<head>
<link rel="manifest" href="mf.webmanifest">
<meta name="mobile-web-app-capable" content="yes">
</head>
...
</html>

离线时似乎没有缓存。另外,我可以使用application cache

创建一个脱机缓存的页面
<!DOCTYPE html>
<html manifest="mf.appcache">
<head>
<meta name="mobile-web-app-capable" content="yes">
</head>
...
</html>

但是,当我尝试将这两者结合起来时(因此我可以使用启动全屏的脱机缓存页面),Web App Manifest将被忽略,我只能获得第二个示例中的脱机行为。

我最终想要的是一个可以添加到主屏幕的单个页面,它可以打开全屏,根本没有浏览器/操作系统镶边,并且可以缓存以供脱机使用。使用Chrome 65在Android上运行的解决方案是可以接受的。

2 个答案:

答案 0 :(得分:0)

这是一个有趣的困境!我想知道你是否会有更好的运气使用 Google描述的<link rel="manifest" href="/manifest.json">。以下是他们对Web App Manifest.

的建议的链接

Web App Capable元标记主要用于全屏功能。如果你想要专门的缓存,我认为使用http-equiv="cache-control"标头标签及其指令更接近你想要完成的任务。特别是因为服务工作者尚未得到全球支持。我在堆栈上找到了关于HTML缓存的一个不错的解释:"How to set HTTP headers for cache-control."

修改:another user has pointed out如果在清单文件中设置了显示,Chrome将不会遵循此标记

答案 1 :(得分:0)

Service Workers功能提供与不推荐使用的应用程序缓存相同的功能。

MDN有一篇关于Using Service Workers的文章,我发现它非常有助于实现我需要更换应用程序缓存。