与保存到主屏幕上的iPad iOS6的web应用程序的cache.manifest /离线使用奇怪的

2019-08-01 00:17发布

我刚刚发现iPad上的一些奇怪的行为与新的iOS 6,我测试web应用程序的离线使用。 Web应用程序是不超过静态网站与缓存清单,所以像煎茶触摸或类似phnoegap工具没有特殊的框架使用更多。 只是HTML,CSS和JavaScript和cache.manifest。

该应用程序能正常工作之前,我可以在网站上保存到主屏幕。 当我从那里打开一看,所有的数据将被下载的缓存。 在下载结束时弹出会来问我是否想增加缓存50MB的 - 受理 - 一切都很好 - 脱机使用工作。

现在更新到iOS 6之后,我做了一些修改的应用程序。 卸载从主屏幕应用程序。 在移动Safari浏览器再次打开它。 保存到主屏幕。 当打开下载开始为应该。 但随后冻结在99%以上。 当我看到它在控制台中,我得到的错误消息:“应用程序缓存更新失败,因为大小配额超出。”

这里来的奇怪的事情:当我在浏览器中打开它,下载开始和结束时有人问我,如果我想增加高速缓存大小50MB的。 我确认过程中。 当我现在看在Safari的偏好,在“网站数据”,我看到所有为这个应用程序缓存的数据大约是33MB! 因此,不是在所有超过50MB!

这是iOS6的的错误吗? 有没有人遇到缓存数据的任何问题,节省了网站到主屏幕时,因为在更新到iOS 6? THX对于任何帮助,我真的坚持在这里......找不到任何东西在网络上有帮助...

(遗憾的是我不能发布任何链接到Web应用程序和/或它的文件)。

编辑:

我发现在这个问题上的一些详细信息:

http://www.nsbasic.com/blog/?p=928

显然保存到主屏幕WEP的应用程序,现在像对待本地应用程序,这意味着保存到主屏幕相同的web应用程序的每个实例得到它自己的“存储沙箱”。 因此,该数据是从保存在移动Safari浏览器中的数据independet。 这意味着如果你这对保存在主屏幕上的Web应用程序没有任何影响(之前iOS6的他们有着相同的数据)删除所有的移动Safari的网页数据的。

我也发现了这一点:

iOS 6的分解在web应用GeoLocation中(苹果移动web应用能力)

虽然不是完全一样的题目,也可能是相关的。 显然,Web应用程序使用保存到主屏幕

<meta content="yes" name="apple-mobile-web-app-capable" />

wont't能够使用地理位置。 地理位置只能当您从您的Web应用程序中删除这个元标记。 也许这也是缓存的问题解决方法,我还不能对其进行测试。 不过话又说回来:也许不再需要cache.manifest如果保存到主屏幕上的网络应用程序进行处理更像本地应用程序? 如果我发现我越会报告回到这里。

EDIT2:

好了一些测试,从没有网络,也没有苹果没有有用的提示后,我发现至少东西:当我删除

<meta content="yes" name="apple-mobile-web-app-capable" />

当然,从该网站一切正常,因为它就像你打开Safari和我有没有问题为止。 所以,我的兴趣是,使之不chrome浏览器工作。 由于缓存上述只到99%,然后我得到的缓存大小配额超出误差。 然后,我刚刚关闭了主屏幕应用程序,然后再次打开它。 现在缓存下载再次启动并完成就好了! 无冻结,没有错误! 所有的一切都似乎localy存储。 我只能今天测试它在iPad模拟器,但我希望我能够尽快确认这一点,我可以得到我的手我们的设备上以后。

所以,如果你想增加高速缓存大小你得到的缓存大小超出配额的错误似乎不是被问。 也许是因为数据存储于主屏幕的应用程序现在的处理方式不同你就不用手工增加高速缓存大小了(当然这是纯属猜测)。 不过,如果是这样的话,不应该有任何错误。 因此,而不是被要求增加高速缓存的大小,你必须打开主屏幕应用了两次,这是一个非常蹩脚的解决办法顺便说一句...

EDIT3:

我只是可以确认在真实设备上此行为:保存到主屏幕 - >从主屏幕打开 - >下载到缓存文件 - >缓存大小配额在年底超过误差 - >关闭主屏幕上的应用程序(按Home键) - >再重新打开 - >被缓存的文件再次下载 - >这次没有错误 - >寄托都可用脱机。

我也与iOS 5测试它的设备上,有它像预期的没有错误。 因此,这绝对是一个iOS 6的问题。

任何人都可以证实这种行为或错误吗?

EDIT4:

我偶尔有来测试这个在iOS 6.1.3的机会 - 可惜还是相同的行为...

Answer 1:

我发现下面的链接有用。 它解释说,作为主屏幕应用现在存储像本地应用程序,他们有自己的存储/缓存。

地理位置适用于第一次迭代,但未能从此更新。

iOS 6的地理位置和本地数据存储

“数据在主屏幕应用现在存储像本地应用程序。本机应用程序都有自己的沙盒,他们的数据存储,备份和恢复。在此之前的iOS 6,主屏幕应用程序具有相同的应用程序在浏览器中运行的共享数据如果用户清除浏览器缓存,应用程序的主屏幕版本将失去其数据too.With iOS 6中,主屏幕应用的数据被保存到一个沙箱就像本地应用程序。备份和还原正确处理数据在浏览器和清除缓存不会影响他们。”



文章来源: strange behaviour with cache.manifest / offline usage of web app saved to home-screen on ipad ios6