Это заняло у меня целый день, чтобы выяснить, так что я хотел бы дать полную документацию о том, как решить эту проблему на Android 4.2 и 4.3.
Вы: : Использовать веб-SQL от file://
URL в WebView. Кордове удалось это сделать. Есть только три вещи вы должны сделать:
1) Позвоните setDatabaseEnabled()
(Дух):
webView.getSettings().setDatabaseEnabled(true);
2) Установить путь к файлу базы данных. Да, это осуждается в Android 4.4, но это требуется, если вы хотите, чтобы избежать DOM Exception 18 в предварительном KitKat:
String databasePath = getContext().getApplicationContext().getDir(
"database", Context.MODE_PRIVATE).getPath();
webView.getSettings().setDatabasePath(databasePath);
3) Установите onExceededDatabaseQuota
обработчик. Да, он устарел в Android 4.4, бла-бла-бла.
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onExceededDatabaseQuota(String url, String databaseIdentifier, long currentQuota, long estimatedSize,
long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) {
quotaUpdater.updateQuota(estimatedSize * 2);
}
});
Если вы пропустите любой один из этих 3 шагов, то вы получите сообщение об ошибке DOM Exception 18 и Web SQL не будет работать. Вас предупредили.
http://stackoverflow.com/questions/8390985/android-4-0-1-breaks-webview-html-5-local-storage – konmik