iOS:苹果是否对保存到主屏幕的web应用禁用HTML5离线功能?
我一直在做大量工作,使用HTML5清单让一些web应用在iOS上离线工作。我遇到了其他人都遇到的典型问题,并解决了这些问题,除了我在iPhone4上将web应用程序保存到桌面的情况外,一切似乎都很正常 如果我这样做,然后启用飞行模式,当尝试通过主屏幕访问应用程序时,我会收到以下警报:“您的应用程序名称无法打开,因为它未连接到internet。”通过Safari浏览器访问应用程序在脱机时工作正常 如果有人知道这是否是我的错误,甚至是解决问题的可能性很小,一定要告诉我 即使下载新的《金融时报》web应用程序(在广泛的本地存储支持下做得很好),从主屏幕脱机访问时也会出现错误iOS:苹果是否对保存到主屏幕的web应用禁用HTML5离线功能?,ios,html,offline-browsing,offline-caching,Ios,Html,Offline Browsing,Offline Caching,我一直在做大量工作,使用HTML5清单让一些web应用在iOS上离线工作。我遇到了其他人都遇到的典型问题,并解决了这些问题,除了我在iPhone4上将web应用程序保存到桌面的情况外,一切似乎都很正常 如果我这样做,然后启用飞行模式,当尝试通过主屏幕访问应用程序时,我会收到以下警报:“您的应用程序名称无法打开,因为它未连接到internet。”通过Safari浏览器访问应用程序在脱机时工作正常 如果有人知道这是否是我的错误,甚至是解决问题的可能性很小,一定要告诉我 即使下载新的《金融时报》web
技术规格:使用iOS 4.3.3运行iPhone 4(但也在4.3.2中看到了问题)阅读评论(尤其是Rowan的评论)后,我进行了更多测试,找到了答案: 不,苹果没有对保存到主屏幕的网络应用禁用HTML5离线功能,它在很大程度上是有效的。有一个bug会使它无法工作。这似乎与您的清单设置没有任何关系(除非它在某一点上下载了一个错误的清单或不完整的清单)。我们不知道它有多普遍,但修复方法是清除您的Mobile Safari缓存 以下是步骤:
我发现它非常有用——尽管我已经创建了清单文件,并将其与其他人的清单进行了比较,但这个JavaScript调试脚本给了我一个我从未发现的线索。我的清单中显然有语法错误。。。长话短说,我必须删除所有内容,并逐个添加每个文件/图像的路径。最终的结果是一样的,但它的工作。。。真奇怪!!!空白/注释是否会影响文件的语法?iOS似乎对脱机时的加载问题非常敏感 在我正在处理的页面上脱机时,我收到了您的“无法打开”错误。问题是页面创建了一个iframe,指向一个没有AppCache的站点。删除这些iFrame修复了该问题 在我的例子中,我使用
window.navigator.standalone
来处理它,它告诉您是否在iOS主屏幕应用程序中运行。代码如下所示:
if (!navigator.standalone) insertFrames();
@尼克:肯定是阴谋:)@Mauvis Ledford我刚检查过,它在我的iPhone4 iOS 4.3.1上不起作用。我认为苹果打破了这一点,它以前就已经工作过了。@Mauvis Ledford我对进一步的调试非常感兴趣,因为我们收到了一些关于FT应用程序不能脱机工作的报告。这里的测试(在iPad4.2和4.3.3以及iPhone4.3.3上)显示该应用程序在家庭影院或码头上离线工作;我甚至试着离线,然后把它从屏幕移到码头,仍然有效!在某个地方肯定有一点巫毒与清单有关,但我不能确定这最后一点。。。(FWIW,清除缓存和数据库,然后重新启动设备,如果出现错误,似乎会让设备正常工作)。@Nick Weaver:请看下面我的答案。看起来,只要清除Safari缓存就可以了——遗憾的是,如果这种情况发生在客户身上,他们不会知道,但感谢您的提示!如果你知道这个问题有多广泛,请随时继续在这里发帖。如果这是一个流行的问题,可能会导致iOs上的离线html5应用程序死亡。请注意,FT应用程序添加了一个弹出窗口,其中包含清除缓存和重新启动设备的说明,以便脱机使用。谢天谢地,这篇文章我已经开始失去它了……在这方面有一点额外的警告:虽然它可能会改善主屏幕的情况,但清除缓存将破坏MobileSafari内的显式使用。清除缓存后,清单交换将失败,并在MobileSafari中出现未指明的错误,直到MobileSafari重新启动。大概这不会影响主屏幕应用程序,因为它们每次都会重新启动…(使用未来版本Beta的用户可能会发现这个特定的错误已经解决…)我只是想确认,遵循这些步骤也有助于解决我iPhone上的问题。我开发的同一个web应用程序在iPad上的“飞行模式”下运行良好,但iPhone抱怨“web应用程序名称无法打开,因为它没有连接到互联网。”在通过上述步骤清除移动safari缓存后,该web应用程序现在在我的iPhone上运行。此处的链接已断开。