iOS 5.1Web存储方式的改变会影响到Web App吗?

iOS上很多采用Web存储API来实现持久性数据存储的App,都在近期iOS升级到5.1版本后,受到了的严重影响。受到影响的App多用PhoneGap或者其他采用WebKit API来实现数据存储的开发工具开发。比如,这一款App看起来正受着影响:

其他的开发者表示:

“我收集的统计数据表明,用户经常因为App每次打开之后,之前的设置常常被删除,而抛弃一款App。这其实是一个相当致命的错误,应该被马上纠正。而且不要忘了,开发者纠正以后,到Apple允许新版本上架,还有段时间要等。

准确地说,WebKit被用于存储本地数据文件到Library/Webkit中。Library/Webkit这个存储目录在过去被操作系统看做是永久的,并且备份于iCloud中。而iOS 5.1中,数据被存储于Library/Caches中,这意味着这都被当成了临时数据,并有可能被删除。W3C的候选意见,对localStorage给出的评价是(原文点击这里):

“用户代理应该将本地存储中的数据分散开,这是基于安全性的考虑,或者在用户需要他们这么做时他们应该如此。”

一个嵌入式浏览器和传统Web浏览器并不完全一样。如果你在Webkit中用SQLite,那这将不包含在W3C HTML5 API中,因为这些API已不再提供Web SQL

这个问题的复杂性在于,还会存在一个Bug详情点击这里),它导致升级App至新版本之后数据的丢失。还有其他问题存在于目前的Web App,以及应用了嵌入式UIWebViewApp中。

PhoneGap在这个问题上是有一定弹性的。因为它可以调用本地API,这将在可能出现问题时继续工作。不过不好的情况是,代码会因此更针对特定平台,而破坏其跨平台性。

Apple开发者论坛上在iOS 5.1beta版发布期间的讨论,可以看出Apple已经意识到这个问题,但正式版发布时仍没得到解决。这给我们的感觉是,Apple似乎恼怒于众多的App(无论Web还是本地)运用Web存储来加速,而不是仅用来存储用户创建的内容。Apple觉得,这是在给iOS设备上本来就捉襟见肘的存储空间施加更大压力。

想扩大一部iPad或者iPhone的存储空间,除了花更多的钱再买一部,我们都知道别无他法。

这的确是个问题。不过你不能否认的是,Apple认为PhoneGap一类的开发工具,或者体验接近本地AppWeb App,这对于Apple而言某种程度绕过了它的商业开发体系,而它绝对不鼓励这么做。Apple更喜欢的还是完全采用iOS SDK开发的App

Apple从真正意义上的本地App受益,这导致了Apple平台常显出一定程度的排他性。而且App只能从App Store上获得,同时Apple从中抽取一定比例费用。

官方的iOS数据存储指南可以点击这里获得。

 

文章发表于201241日。

原文作者Tim Anderson,著名IT自由记者。

原文链接:

http://www.itwriting.com/blog/5656-apple-breaks-web-storage-in-ios-5-1-does-not-care-about-web-apps.html?utm_source=html5weekly&utm_medium=email

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值