iOS 5.1的Web存儲方式改變會影響到Web App嗎?
比如,這一款App看起來正受著影響:
其他的開發者表示:
“我收集的統計數據表明,用戶經常因為App每次打開之后,之前的設置常常被刪除,而拋棄一款App。這其實是一個相當致命的錯誤,應該被馬上糾正。而且不要忘了,開發者糾正以后,到Apple允許新版本上架,還有段時間要等。”
準確地說,WebKit被用于存儲本地數據文件到Library/Webkit中。Library/Webkit這個存儲目錄在過去被操作系統看做是***的,并且備份于iCloud中。而iOS5.1中,數據被存儲于Library/Caches中,這意味著這都被當成了臨時數據,并有可能被刪除。W3C的候選意見,對localStorage給出的評價是(原文點擊這里):
“用戶代理應該將本地存儲中的數據分散開,這是基于安全性的考慮,或者在用戶需要他們這么做時他們應該如此。”
一個嵌入式瀏覽器和傳統Web瀏覽器并不完全一樣。如果你在Webkit中用SQLite,那這將不包含在W3CHTML***PI中,因為這些API已不再提供WebSQL。
這個問題的復雜性在于,還會存在一個Bug(詳情點擊這里),它導致升級App至新版本之后數據的丟失。還有其他問題存在于目前的WebApp,以及應用了嵌入式UIWebView的App中。
PhoneGap在這個問題上是有一定彈性的。因為它可以調用本地API,這將在可能出現問題時繼續工作。不過不好的情況是,代碼會因此更針對特定平臺,而破壞其跨平臺性。
從Apple開發者論壇上在iOS5.1的beta版發布期間的討論,可以看出Apple已經意識到這個問題,但正式版發布時仍沒得到解決。這給我們的感覺是,Apple似乎惱怒于眾多的App(無論Web還是本地)運用Web存儲來加速,而不是僅用來存儲用戶創建的內容。Apple覺得,這是在給iOS設備上本來就捉襟見肘的存儲空間施加更大壓力。
想擴大一部iPad或者iPhone的存儲空間,除了花更多的錢再買一部,我們都知道別無他法。
這的確是個問題。不過你不能否認的是,Apple認為PhoneGap一類的開發工具,或者體驗接近本地App的WebApp,這對于Apple而言某種程度繞過了它的商業開發體系,而它絕對不鼓勵這么做。Apple更喜歡的還是完全采用iOSSDK開發的App。
Apple從真正意義上的本地App受益,這導致了Apple平臺常顯出一定程度的排他性。而且App只能從AppStore上獲得,同時Apple從中抽取一定比例費用。
官方的iOS數據存儲指南可以點擊這里獲得。
文章發表于2012年4月1日。
原文作者TimAnderson,著名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