3

我们正在为 ipod touch/iphone 开发一个 html5 离线网络应用程序。我们的清单和一切工作正常,但我们无法弄清楚为什么我们的应用程序在 iphone safari 中的“选项卡”关闭后不会重新打开。

例如,这是有效的:

1) 在 ipod touch 上打开 safari 中启用离线的 html 文件的 url

2)退出safari,关闭wifi

3)回到动态webapp在窗口中的safari,点击刷新

4)应用程序离线工作!

但是,如果我们这样做,离线应用程序就会消失:

5) 将书签添加到应用程序的网址(或主屏幕图标)

6) 关闭 Safari 中的“选项卡”或窗口

7) 打开书签或主屏幕图标

8) 错误信息:“无法打开页面:Safari 无法打开页面,因为它没有连接到互联网。”

我已经在这个问题上搜索了一下,你知道它是怎么回事,我会在点击“发布”后 2 秒找到答案。但无论如何,我的直觉是当前最新的 iphone OS 版本的 safari 正在尝试在 url 上进行 dns 查找并出错,而不是意识到它已经在设备上具有本地存储的应用程序。

有人遇到这个吗?我可以在清单中设置一些标志或解决这个问题吗?

4

3 回答 3

2

您可能没有正确配置您的服务器。Apple 文档没有说明这一点。

如果您的服务器正在运行 Apache(很可能),您需要编辑此文件:
/user/local/apache2/conf/mime.types

将此行添加到末尾:
text/cache-manifest manifest

您将需要重新启动 Apache 以使设置生效。可能是
restart_apache来自外壳的东西。

这里发生的情况是服务器需要使用正确的内容类型集将缓存文件返回给您。如果您不这样做,该文件可能会以“文本”的形式返回。如果设置正确,它将返回一种“缓存清单”。

要测试文档返回的 MIME 类型,请使用web-sniffer.net。输入清单文件的 url - 您将看到 Content-Type 中显示的结果:

于 2010-02-14T19:32:49.377 回答
1

提示:每当您更改清单中的文件时,请检查是否更改了清单本身中的某些内容以指示需要下载这些文件。并注意可能不会根据过期设置检查更改的缓存文件

于 2012-02-01T22:48:31.180 回答
0

似乎 Safari(以及 iPhone)希望所有文件都列在清单中——甚至是应用程序的主文件。我使用 default.asp 作为我的应用程序的主页,但未将其包含在清单中。我的应用程序是从 mydomain.com/myapp/ 运行的,因此浏览器从未看到“default.asp”。此外,根据 HTML5 规范,主页面不必在清单中,但显然 Safari 对此的看法略有不同。

我的解决方案是避免使用 default.asp 并调用我的应用 app.asp 并将“app.asp”添加到清单中。希望这可以帮助。

于 2010-12-05T11:10:47.727 回答