Max size of WebSQL/SQLite database inside UIWebView (phonegap)

17,859

Yes, the WebKit DB is also limited to 5mo.

You can trick the system with this solution: https://issues.apache.org/jira/browse/CB-330?focusedCommentId=13237796&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13237796

Or you can use a native SQLite DB (same as WebSQL) with a phonegap plugin. That plugin save the database in the Document folder (or you can specify another folder), and there is no size limit and data is saved by iCloud. (But take care, Apple don't really like apps wasting iCloud storage)

Here is the Native SQLite phonegap plugin : https://github.com/davibe/Phonegap-SQLitePlugin Regarding this plugin, there are some differences between the WebSQL API, here is an adaptor: https://gist.github.com/2009518

And if the data are important, you should save it to a server. I wrote a small lib to synchronize the SQlite DB to a server : https://github.com/orbitaloop/WebSqlSync

Share:
17,859
James Andino
Author by

James Andino

A Functional Human Being

Updated on June 30, 2022

Comments

  • James Andino
    James Andino almost 2 years

    It seems to have been asked before but I did not find a satisfactory answer.
    When creating a IOS Phone gap application, well any html5 application on an IPAD is their a restriction to the size of the database when compiled to a native application? I know that in general there is a 5MB limit to native storage for web applications. Is this limitation also there for native web view apps?

  • Du Song
    Du Song over 11 years
    Just note the Webkit data delete issue is gone: In iOS 6 and later, web data (SQL Web Storage and LocalStorage) from a UIWebView object can be stored in a directory that will be backed up. To enable backing up this data, set the WebKitStoreWebDataForBackup key to YES in your app’s user defaults. This should be done only if your app relies on web content data that cannot be reloaded. If your UIWebView object opens links to arbitrary web content, this key should be set to NO. Toggling the value of this key will not preserve existing web view data.