要清楚地知道,该Web应用程序缓存并且在移动Safari中正常工作。在iOS中添加到主屏幕时,HTML5网络应用程序不缓存
问题是当它被添加到iPhone 4s和iPad 2上的主屏幕上时,它们都运行iOS 6.0.1。它不会脱机工作,并提供网络错误连接到互联网,即“无法打开MYWEBAPP。MYWEBAPP无法打开,因为它没有连接到互联网”
我一直在调试这几个小时,似乎无法找到解决方案。我没有收到控制台中的任何错误,我正在运行Jonathan Stark的debugging code
我已经在桌面Safari,Chrome和Firefox的开发人员工具中在线/离线测试了该应用程序。以及使用Safari中的设备的Web Inspector。结果在iPhone或iPad上都是一样的。他们都会缓存网络应用程序,并且可以在Mobile Safari中使用,但在添加到主屏幕时不会。无论是脱机还是在线都无错误。
据我所知,我使用的最佳做法:
添加HTML标题:
<html manifest="photo.appcache">
我也尝试使用不同的名称清单文件包括:缓存。 manifest和offline.manifest,因为我知道它有所不同,但在我的测试中,只要扩展名为.manifest或.appcache,并且在.htaccess文件中适当地提供服务,名称无关紧要。
添加正确的MIME类型:
AddType text/cache-manifest appcache manifest
我也试过:
AddType text/cache.manifest manifest
,AddType text/cache.manifest .manifest manifest
,AddType text/cache-manifest .manifest
我不相信这工作:
AddType text/cache.manifest
,但我不记得了。在大多数情况下这并不重要,我坚持:将AddType文本/缓存清单应用程序缓存清单
为什么在HTML5移动样板。
补充:
NETWORK: *
到应用程序缓存文件。我相信这可以让所有的下载以及所有的链接工作。
- 我试图消除这一行:
<meta name="apple-mobile-web-app-capable" content="yes">
因为我读到这里上,这样就解决了一个问题,与我相似,但我可以肯定,它不会在我的测试工作。按主屏幕图标时,删除此行或将内容设置为“否”将重定向到Mobile Safari,并且不会全屏打开。
我已经把它缩小到它是iOS 6中的一个错误(我实际上使用的是iOS 6.0.1),因为我知道现在浏览器中的Web应用程序的数据已经分开,那些添加到主屏幕。我在这里发布这个问题,看看是否有其他开发者遇到了同样的问题。
地狱是的,这个脚本是解决方案,我会在下面添加它作为答案。 – Philip
链接现已停止。 – Joshua
脚本粘贴在@Philip答案中。我会用Gist更新链接。然而,我无法控制Jonathan Starks博客。也许做一个谷歌搜索,看看你能找到它吗? – Paul