我正在写一个在 iOS 上离线使用的网络应用程序。我已经创建了一个清单,提供它作为 text/cache-manifest
,它通常工作良好,当运行在 Safari。
如果我把它作为一个应用程序添加到我的主屏幕,然后打开飞机模式,它不能打开应用程序在所有-我得到一个错误,它提供了关闭应用程序。(我以为这就是离线应用程序的全部用途!)
当我第一次在线加载这个应用程序时,我可以在我的日志中看到它正在请求清单中列出的每一页。
如果我关闭 AirFlight 模式并加载应用程序,我可以看到它请求的第一个文件是 main.html 文件(这两个文件都在清单中列出,并且具有 manifest=...
属性)。然后它请求清单和所有其他文件,所有文件获得200(在这个加载期间第二次请求的任何文件获得304)。
当我在 Chrome 中加载页面,并点击周围,日志显示它在服务器上试图访问的唯一内容是“/Favicon.ico”(这是一个404,我不认为 iOS Safari 试图加载,无论如何)。清单中列出的所有文件都是有效的,并且没有错误。
Chrome 检查器列出了所有我希望列出的缓存文件。整个文件集大约为50KB,远远低于我所发现的离线资源的任何限制。
这是否应该工作,也就是说,我应该能够创建一个离线的 iOS 应用程序只使用 HTML/CSS/JS?那么我该怎么弄清楚为什么它在离线状态下无法工作呢?
(相关但对我来说不太一样,因为它是关于 Safari 的,而不是一个独立的应用程序: “ 不能让网络应用程序离线在 iPod 上工作”)