2011-10-18 46 views
8

如果我在PhoneGap中使用localStorage存储键/值数据的应用程序,该数据是否会通过iCloud同步到其他设备?我不需要保存太多的数据。PhoneGap localStorage保存到iCloud吗?

+1

看起来asgeo1的答案是正确的,矛盾于一个由OP接受。 – michielbdejong

+0

是的,其他答案应该是接受的答案 – Timo

回答

-2

不,localStorage是基于浏览器的,并且通过PhoneGap让你玩的UIWebView持久化,它不受绑定到应用程序的影响。

您可以编写一个插件来访问文档目录以使用Phonegap将信息保存到iCloud。

旧的错误信息在这里。请参阅下面的@ asgeo1的答案。

20

我不同意@sciritai。

localStorage在iOS中只是一个存储在设备某处的SQLite数据库文件。

也许在以前的Phonegap/Cordova版本中有所不同,但在当前版本中,Phonegap会将localStorage.db文件写入您的应用程序的Documents目录。

具体来说:Documents/Backups/localstorage.appdata.db

由于文档目录是特定于每个应用程序,它会被自动保存到iCloud。

我可以在iOS中检查iCloud设置(在Storage & Backup > Manage Storage下)来确认这一点。

我可以看到我的HTML5 iOS应用程序正在备份到iCloud。这包括localStorage中的数据:)

我相信这意味着如果你有多个设备,localStorage会在它们之间同步 - 尽管我还没有证实我自己。我不确定iOS会如何处理localStorage文件中的冲突。

+0

如果应用程序被卸载或更新会发生什么 - 数据会丢失吗? – Timo

4

就像asgeo1说的那样,localstorage会保存到iCloud中。您可以通过在config.xml中将BackupWebStorage设置为none来关闭此功能。 Here是指向Phonegap文档的链接。

请注意,只有用户数据可能存储在iCloud中。离线目的所需的数据可能不会存储在iCloud中。 Here是一个链接到苹果的Q &答:

6

我与@ asgeo1对此在这一个。我刚刚提交的phonegap应用已被苹果拒绝,因为它大量使用临时文件的本地存储,并将这些文件输入到icloud的备份中。

解决办法是添加到您的config.xml:

<preference name="BackupWebStorage" value="none" /> 
+1

根据https://cordova.apache.org/docs/en/latest/config_ref/上的文档,默认值为“cloud”,允许的值为“none”,“local”,“cloud” Set到'cloud'以允许通过iCloud备份网络存储数据。设置为“本地”,只允许通过iTunes同步进行本地备份。设置为'none'可阻止网络存储备份。 –