我正在尝试为装有 iOS 4.3.4 的 iPad 2 构建一个 HTML5 驱动的离线应用程序。我按照在多个网站上看到的说明进行操作,甚至能够使用 Chrome 的开发人员工具验证缓存是否正常工作:
Creating Application Cache with manifest http://localhost/experiments/test.manifest
Application Cache Checking event
Application Cache Downloading event
Application Cache Progress event (0 of 2) http://localhost/experiments/offlineApp.js
Application Cache Progress event (1 of 2) http://localhost/experiments/offlineApp.css
Application Cache Progress event (2 of 2)
Application Cache Cached event
我有一个主屏幕图标以及一个“启动屏幕”图像在播放。我可以很好地将应用程序下载到主屏幕,并且可以在那里看到图标。但是,当我关闭 Wi-Fi 并尝试打开应用程序时,我收到了可怕的“无法打开,因为它未连接到 Internet”警告。
有谁知道 iOS 4.3.4(或更早版本的操作系统)中是否发生了某些更改,从而改变了使 HTML5 的此功能正常工作的要求?
谢谢!
编辑
我在“本地主机”设置之外再次尝试了这个。这是我的 HTML:
<!DOCTYPE html>
<html lang="en" manifest="/experiments/cache.manifest">
<head>
<meta charset="utf-8"/>
<title>cache.manifest test</title>
<link rel="stylesheet" href="cache-manifest-test.css"/>
<link rel="apple-touch-icon" href="icon.png"/>
</head>
<body>
<h1>cache.manifest</h1>
<p>Let's see if this thing works...</p>
<script src="cache-manifest-test.js"></script>
</body>
</html>
这是我的 cache.manifest 文件的内容:
CACHE MANIFEST
cache-manifest-test.css
cache-manifest-test.js
我在 Chrome 的开发者工具中看到了正确的结果。我收到“应用程序缓存缓存事件”。它只是不能离线工作。我真的被难住了...
有谁知道我可以复制到我的服务器并尝试使用完整代码的任何页面?
谢谢...
最佳答案
您从 Chrome 发布的消息是从本地主机提供页面时的消息。
检查它是否可以使用服务器而不是本地主机在 Chrome 上运行。
如果没有,请检查您是否为服务器上的应用缓存提供了正确的类型 (text/cache-manifest
)。
如果您在本地主机而不是服务器上提供正确的类型,这将解释不同的行为。
此外,我了解到该文件在 iPad 上必须命名为“cache.manifest”。如果您将其命名为其他名称,请尝试。
关于ios - iOS 4.3.4 中是否可以使用离线 HTML5 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7112298/