(Как) я могу увеличить лимит квоты LocalStorage в Android WebView

Мне нужно увеличить лимит квоты по умолчанию для LocalStorage в Android WebView. В настоящее время я могу использовать только 2,5 МБ. При попытке сохранить больше данных создается quota_exceeded_err (dom exception 22).

Любые идеи или мне нужно переключиться на db/файловую систему?

Ответ 1

Мы говорим о HTML5 WebStorage DOCS

Существует много вопросов по одной теме, но не для Android

Факт в том, что HTML5 WebStorage страдает от различной реализации на разных платформах.
Комбинации настольных и мобильных платформ и браузеров различаются по размеру квоты на память (дисковое пространство), назначенной каждому веб-сайту (домену)

И нет, вы не можете увеличить/уменьшить пространство, выделенное для вашего приложения HTML5, такой опции нет в WebSettings в качестве Android WebKit Параметры класса Java accessor, ни в WebKit, реализация HTML5 WebStorage на данный момент.

ссылка: http://dev.w3.org/html5/webstorage/#disk-space

Рекомендуется использовать в основном произвольный предел в пять мегабайт на источник. Замечания по внедрению приветствуются и будут использоваться для обновления этого предложения в будущем.

Если вам действительно нужно большое пространство в вашем приложении HTML5 (независимо от того, проходит ли он через PhonGap, Titanium, Rhodes или другое...), я бы строго рекомендовал вам использовать HTML Web SQL Database

Даже если DOCS скажет:

Этот документ был на треке Рекомендации W3C, но работа по спецификации прекратилась. Спецификация зашла в тупик: все заинтересованные разработчики использовали один и тот же SQL-сервер (Sqlite), но нам нужно несколько независимых реализаций для продолжения пути стандартизации.

Web SQL теперь поддерживается только на устройствах Android (что вы делаете в этом вопросе), что позволяет увеличить/уменьшить объем размещения ваших данных.

Обратите внимание на соответствующий вопрос:

Ответ 2

Я написал минимальный script для этого: https://github.com/DVLP/localStorageDB

Цель состоит в том, чтобы иметь очень простое использование с парами ключевого значения, например, в localStorage, и использовать большие размеры IndexedDB и потенциальное увеличение производительности благодаря тому, что оно является асинхронным.

Надеюсь, вы найдете это полезным!