首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用Phonegap和iOS 5.1时,如何阻止HTML5数据库被删除

在使用Phonegap和iOS 5.1时,如何阻止HTML5数据库被删除
EN

Stack Overflow用户
提问于 2012-03-12 22:27:22
回答 3查看 2.6K关注 0票数 5

我正在使用phonegap为iOS创建一个测验风格的应用程序。该应用程序允许用户创建并进行测验。

目前,我正在使用HTML5数据库,使用phonegap来存储测试和结果数据。不过,我担心的是,当设备存储空间变满时,iOS 5.1现在可以删除数据库。

有没有办法标记存储数据库的webkit缓存文件夹,使其永远不会被删除?如果这是不可能的,是否有任何建议的另一种方式来存储数据将始终是持久的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-02 22:02:56

Webkit存储和iOS 5.1的这两个问题都有一个修复程序

  1. 存储从/Webkit移至/Cache
  2. 存储未根据iOS 5.1 (WebKit错误)

下的应用程序更新调整更新的文件夹结构

https://issues.apache.org/jira/browse/CB-330

这种解决方案似乎比仅仅更改调用私有API的Webkit数据的位置更安全。当应用程序运行时,使用Webkit存储位置。恢复或终止时,所有数据都将备份到documents文件夹。时间戳确保旧的备份不会覆盖新的存储数据(如果应用程序崩溃...)。

最好的:如果用户使用的是老版本的iOS,那么在iOS更新的情况下,用户将不会遭受损失。这就是为什么人们不应该等待的原因。

票数 1
EN

Stack Overflow用户

发布于 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

票数 7
EN

Stack Overflow用户

发布于 2012-03-12 23:34:53

我不使用html5数据库,而是通过ajax (在远程服务器上,用php和mysql)发送/接收数据,最好是加密的(和base64_encoded)。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9668948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档