我正在尝试构建一个可以在离线时启动的简单单个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上运行的解决方案是可以接受的。
答案 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的文章,我发现它非常有助于实现我需要更换应用程序缓存。