我有一个在iOS上运行的Phonegap / Cordova应用程序 . 它将数据保存到HTML5 localStorage中 .
如果可以将localStorage数据(使用iCloud)同步到其他iOS设备甚至OS X,我正在努力解决这个问题 .
从我所看到的,在iOS中,localStorage实际上是作为SQLite数据库实现的,当使用Phonegap / Cordova时,它被写入应用程序的Documents目录:
文件/备份/ localstorage.appdata.db
我也明白在iCloud中存储数据有三种主要方式:
-
键/值存储
-
UIDocument / NSDocument
-
核心数据
我知道我不能使用Key / Value iCloud存储方法,因为我要存储超过1MB的数据,并且使用该方法每个应用程序的限制为1MB .
This question,我相信是在谈论UIDocument方法,并询问是否可以使用该方法在iCloud中存储SQLite db文件 . 答案是否定的,因为数据库可能已损坏 .
所以这真的离开了Core Data方法 .
所以我的问题是 - 这会有用吗?我可以使用Core Data将localStorage.db文件同步到iCloud吗?
我从来没有使用过Core Data,也不太了解它 . 我只是想知道它是否可能,或者是否有其他我不理解的东西 .
有没有其他方法可以在iOS设备或OS X之间同步localStorage数据?
1 回答
答案不幸的是,Core Data不能与HTML5 localStorage一起使用
除了使用Core Data创建的数据之外,Core Data不能与SQLite数据库一起使用 . 如果你尝试,你在XCode中得到这个错误:
核心数据文档解释了这一点:
https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdFAQ.html#//apple_ref/doc/uid/TP40001802-SW2
我仍然想解决这个问题 . 我正在考虑创建一个镜像localStorage API的Javascript API . 这将是一个phonegap插件,可以调用objective-c代码,并有效地将其更改写入Core Data数据库 . 然后,核心数据数据库应该能够同步到iCloud .
如果有效,我会回来更新这个答案 .