我正在使用phonegap为iOS创建一个测验风格的应用程序。该应用程序允许用户创建并进行测验。
目前,我正在使用HTML5数据库,使用phonegap来存储测试和结果数据。不过,我担心的是,当设备存储空间变满时,iOS 5.1现在可以删除数据库。
有没有办法标记存储数据库的webkit缓存文件夹,使其永远不会被删除?如果这是不可能的,是否有任何建议的另一种方式来存储数据将始终是持久的。
发布于 2012-04-02 22:02:56
Webkit存储和iOS 5.1的这两个问题都有一个修复程序
下的应用程序更新调整更新的文件夹结构
https://issues.apache.org/jira/browse/CB-330
这种解决方案似乎比仅仅更改调用私有API的Webkit数据的位置更安全。当应用程序运行时,使用Webkit存储位置。恢复或终止时,所有数据都将备份到documents文件夹。时间戳确保旧的备份不会覆盖新的存储数据(如果应用程序崩溃...)。
最好的:如果用户使用的是老版本的iOS,那么在iOS更新的情况下,用户将不会遭受损失。这就是为什么人们不应该等待的原因。
发布于 2012-03-14 02:53:03
是的,很遗憾苹果在iOS5.1中做到了这一点
可以更改调用私有API的WebKit数据的位置。您应该能够将位置设置为安全文件夹,如Documents。我还没有测试这个解决方案,但是看看这篇文章:How do I enable Local Storage in my WebKit-based application?
Phonegap团队也在研究这个问题:https://issues.apache.org/jira/browse/CB-330
Antoher的方法是使用SQLite (和WebSQL一样)和一个phonegap插件。该插件将数据库保存在Document文件夹中,这意味着数据库不会被删除,而是由iCloud保存。
这里是Native SQLite phonegap plugin:https://github.com/davibe/Phonegap-SQLitePlugin关于这个插件,它比WebSQL稍慢一些,在某些情况下,WebSQL应用编程接口之间也有一些不同,但这里有一个适配器:https://gist.github.com/2009518
还应将旧的WebSQL db文件(存储在库/WebKit或缓存目录中)迁移到Document文件夹。下面是实现这一点的代码:https://gist.github.com/2009491
如果数据很重要,您应该将其保存到服务器上。我编写了一个小型库来将SQlite DB与服务器同步:https://github.com/orbitaloop/WebSqlSync
发布于 2012-03-12 23:34:53
我不使用html5数据库,而是通过ajax (在远程服务器上,用php和mysql)发送/接收数据,最好是加密的(和base64_encoded)。
https://stackoverflow.com/questions/9668948
复制相似问题