在普通的Android网络应用中,WebSQL数据库的最大大小通常约为8MB。在我正在制作的混合网络应用程序中,我想增加此限制。我该怎么做呢?
似乎WebStorage可能与它有关,但我在那里看到的唯一设置大小setQuotaForOrigin
的方法标记为已弃用
欢迎示例代码(不推荐使用):)
答案 0 :(得分:5)
Web应用程序的配额似乎与混合应用程序的配额不同(如在视图中运行的某些内容)。无论如何,通过在android.app.Activity
子类中实现以下内容,您将使配额加倍,直到它最终停止在大约48MB。
@Override
public void onExceededDatabaseQuota(String url, String databaseIdentifier, long currentQuota, long estimatedSize, long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) {
quotaUpdater.updateQuota(estimatedSize * 2);
}
发生这种情况时,系统不会要求用户进行互动。
答案 1 :(得分:1)
您可能希望在how to increase quota limit上查看其他问题。
对于已经创建了本地数据库的用户来说,更改大小只是一个问题,这是因为在运行upgrade scripts for versioning时无法更改数据库的大小。也就是说,您只需要更改初始化脚本中的大小(JavaScript中的代码):
var size = 10 * 1024 * 1024; // changed from 5 to 10MB
var db = openDatabase("oversized_db", "v1.1", "Ten MB DB", size);
考虑到这只会影响新用户。以前创建了具有不同大小的数据库的所有用户都需要清除其缓存(您可以在webView上控制缓存,这样就不会那么糟糕)但所有以前的数据都将丢失(除非您手动将其迁移到新数据库)使用本机代码)。 在我的情况下,我必须做同样但减小大小。这将解决这个问题。
希望这有帮助。