要明确的是,Web应用程序正在缓存,并且在Mobile Safari中可以正常脱机工作.
问题是它被添加到iPhone 4s和iPad 2的主屏幕上,两者都运行iOS 6.0.1.它将无法脱机工作并且在连接到互联网时出现网络错误,即"无法打开MYWEBAPP.由于未连接到互联网,因此无法打开MYWEBAPP"
我已经调试了几个小时,似乎无法找到解决方案.我没有收到控制台中的任何错误,我正在运行Jonathan Stark的调试代码
我已经在桌面Safari,Chrome和Firefox的在线/离线开发者工具中测试了该应用.以及Safari中使用设备的Web Inspector.iPhone或iPad上的结果相同.它们将缓存Web应用程序并将在Mobile Safari中运行,但在添加到主屏幕时则不会.离线或在线都没有错误.
据我所知,我正在使用最佳实践:
添加了HTML标头:
我还尝试使用清单文件的不同名称,包括:cache.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 text/cache-manifest appcache清单
就像HTML5 Mobile Boilerplate中的内容一样.
添加:
网络:*
到appcache文件.我相信这允许下载所有内容以及使所有链接都能正常工作.
我已经尝试删除这一行:
因为我在这里阅读了解决了类似于我的问题,但我可以确认它在我的测试中不起作用.按主屏幕图标时删除此行或将内容设置为"否"将重定向到Mobile Safari而不是全屏打开.
我已经把它缩小到它是iOS 6中的一个错误(我实际上使用的是iOS 6.0.1),因为我知道现在已经将数据分离为浏览器中的Web应用程序和添加到主屏幕的数据.我在这里发布这个问题,看看是否有其他开发人员遇到了同样的问题.