Увеличьте размер квоты WebSQL в WebView

В обычном веб-приложении Android максимальный размер для базы данных WebSQL обычно составляет около 8 МБ. В гибридном веб-приложении, которое я делаю, я хотел бы увеличить этот предел. Как мне это сделать?

Кажется, что WebStorage может иметь с этим какое-то отношение, но единственный метод, который я вижу там, который, кажется, задает размер, setQuotaForOrigin , отмечен устаревшим .

Пример кода (который не устарел) приветствуется 🙂

Solutions Collecting From Web of "Увеличьте размер квоты WebSQL в WebView"

Квота для веб-приложения, похоже, отличается от квитанции гибридного приложения (как и в том, что работает в представлении). Вне зависимости от того, выполнив следующее в вашем подклассе android.app.Activity вы удвоете квоту, пока она не остановится примерно на 48 МБ.

 @Override public void onExceededDatabaseQuota(String url, String databaseIdentifier, long currentQuota, long estimatedSize, long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) { quotaUpdater.updateQuota(estimatedSize * 2); } 

Пользователю не будет предложено взаимодействовать, когда это произойдет.

Вы можете посмотреть на этот другой вопрос о том, как увеличить квоту .

Похоже, изменение размера – это только проблема для пользователей, у которых уже создана локальная БД, потому что нет способа изменить размер БД при запуске сценариев обновления для управления версиями . При этом вам просто нужно изменить размер в скрипте инициализации (код в JavaScript):

 var size = 10 * 1024 * 1024; // changed from 5 to 10MB var db = openDatabase("oversized_db", "v1.1", "Ten MB DB", size); 

Учтите, что это затронет только новых пользователей. Все пользователи, которые ранее создали БД с другим размером, должны очистить свой кеш (у вас есть контроль кэша в веб-браузере, так что это не так уж плохо), но все предыдущие данные будут потеряны (если вы не вручную перенесите его в новую БД С собственным кодом). В моем случае я должен сделать то же самое, но уменьшить размер. Это позаботится об этом.

Надеюсь это поможет.