我对在iOS上的Phonegap-Native-App中使用SQLite的局限性感到有些困惑。
您可以阅读很多关于5mb存储限制的帖子,以及您的Ipad可以要求您增加存储空间的事实。
现在我已经设法使用通常的Phonegap-Storage-API将近7000行插入到我的SQLite数据库中。相应的db-file大小为26 MB。以下select语句“select * from”工作并显示了db的内容。 我已经在模拟器和设备上完成了这项工作。我没有提出增加存储空间的问题。
怎么会这样?我误解了什么吗? Phonegap中的SQLite dbs真的有5mb的限制吗? 我正在使用Phonegap 1.2和iOS 5。
答案 0 :(得分:10)
您可以使用带有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 db文件(存储在Library / WebKit或Caches目录中)迁移到Document文件夹。这是一个代码: https://gist.github.com/2009491
如果数据很重要,您应该将其保存到服务器。我写了一个小的lib来将SQlite DB同步到服务器: https://github.com/orbitaloop/WebSqlSync
答案 1 :(得分:3)
我自己发现了:
成功打开第一个事务,并在同一个事务中一次插入7000条记录。
如果我将插入分成单独的事务,假设每个事务有500条记录,则5 MB的限制会生效。 PhoneGap没有说什么,它只是不插入记录。
答案 2 :(得分:1)
HTML5存储在设备上的问题,它不允许你增加大小。看看这个解决方案:
Solved iOS Database Size Limitation of 5MB (using Plugin)
希望这会对你有所帮助。
干杯