iOS:苹果是否禁用保存到主屏幕的网页应用的HTML5离线function?
我一直在做很多工作,让一些networking应用程序在iOS上使用HTML5清单离线工作。 我遇到了其他人遇到的典型问题,并解决了这些问题,一切似乎都正常工作 – 除了在我的iPhone 4上将networking应用程序保存到桌面的情况。
如果我这样做,然后启用飞行模式,当试图通过主屏幕访问应用程序时,我会得到以下警告:“您的应用程序名称无法打开,因为它没有连接到互联网。 通过Safari浏览器访问应用程序在离线状态下正常工作。
如果有人知道这是否是我的错误,甚至是一个工作的可能性很小,请告诉我。
即使下载新的“金融时报”networking应用程序(很好地完成了对localStorage的广泛支持),在从主屏幕离线访问时也会导致错误。
技术规格:使用iOS 4.3.3运行iPhone 4(但也见4.3.2中的问题)
在阅读了评论(尤其是罗文的评论)之后,我跑了更多的testing,发现了答案:
不,苹果公司没有禁用保存到主屏幕上的networking应用程序的HTML5离线function,它的工作原理 – 大部分。 有一个错误,将使其无法正常工作。 它似乎没有任何关系,你的清单设置(除非可能下载一个错误的清单或不完整的清单)。我们不知道它有多广泛,但修复是清除您的移动Safaricaching。
这里的步骤是:
- closuresnetworking应用程序(确保它不会在后台附近)。
- 清除移动Safaricaching:设置> Safari>清除caching
- 重新打开应用程序(用于caching)。
- 再次closures网页应用程序(确保它不会在后台粘贴)。
- 启用“飞行模式”:设置>飞行模式
- 重新打开了应用程序。
它现在应该脱机工作。 如果它没有,那么它可能是一个单独的清单问题在您的应用程序。 看起来像浏览器caching的一个奇怪的错误 – 或者caching是完全满的? 谁知道,但这就是答案。 多谢你们。
添加到您的HTML:
http://jonathanstark.com/blog/2009/09/27/debugging-html-5-offline-application-cache/
我发现它非常有用 – 即使我已经创build了我的清单文件并将其与其他人的清单进行了比较,但是这个JavaScriptdebugging脚本给了我以前从未发现过的线索。 我显然有在我的清单语法错误…长话短说我必须删除一切,并将path添加到每个文件/图像一个接一个。 最终的结果是相同的,但它的工作原理是多么奇怪! 空格/注释是否影响文件的语法?
iOS在离线时似乎对加载问题非常敏感。
当我正在处理的页面上离线时,我得到了“无法打开”的错误。 问题原来是页面创build了一个指向没有AppCache的站点的iframe。 删除这些iframe解决了这个问题。
就我而言,我使用window.navigator.standalone
处理它,告诉你是否在iOS主屏幕应用程序中运行。 代码看起来像这样:
if (!navigator.standalone) insertFrames();