PhoneGap / iOS上的SQLite数据库 – 超过5MB的可能

我有点困惑在iOS上的PhoneGap本机应用程序中使用SQLite的限制。

你可以阅读关于5MB存储的限制和事实,你的iPad可以要求你增加存储的许多职位。

现在我已经设法使用通常的Phonegap-Storage-API将近7000行插入到SQLite数据库中。 相应的db文件大小为26 MB。 下面的select语句“select * from”工作,并显示数据库的内容。 我已经在模拟器和设备上完成了。 我没有得到提高存储的问题。

怎么可能? 我误解了什么? Phonegap中的SQLite dbs是否真的有5mb的限制? 我正在使用Phonegap 1.2和iOS 5。

您可以使用带有phonegap插件的本机SQLite数据库(与WebSQL相同),并且不会有任何限制。 在iOS5.1中,WebSQL被认为是可以随时删除的临时数据…该插件将数据库保存到Document文件夹中,这意味着数据库不会被删除并由iCloud保存。

这里是Native SQLite的phonegap插件: https : //github.com/davibe/Phonegap-SQLitePlugin关于这个插件,WebSQL API之间有一些区别,这里是一个适配器: https : //gist.github.com/2009518

您还应该将旧的WebSQL数据库文件(存储在Library / WebKit或Caches目录中)迁移到Document文件夹。 这是一个代码来做到这一点: https : //gist.github.com/2009491

如果数据很重要,则应将其保存到服务器。 我写了一个小的lib来同步SQlite数据库到服务器: https : //github.com/orbitaloop/WebSqlSync

我自己发现:

它成功地打开了第一笔交易,并且一次只能在一笔交易中插入7000条logging。

如果我将插入分割为单独的事务,假设每个事务有500条logging,则5 MB的限制将会生效。 PhoneGap不会说什么,它只是不插入logging。

HTML5存储在设备上的问题,它不会让你增加的大小。 看看这个解决scheme:

解决iOS数据库大小限制为5MB(使用插件)

希望这会帮助你。

干杯