Я создал собственное приложение для Android, которое в основном размещает управление webView. Это webView затем используется для загрузки страницы, которая называет window.openDatabase от JavaScript. Я могу успешно подтвердить, что API существует путем проверки window.openDatabase.
Вызов этого метода возвращает пустой указатель при вызове в размещенном управлении webView. Вызов того же метода в Браузере Android возвращает экземпляр базы данных.
Кто-либо знает полномочия в декларации или настройках на управлении webView, которое должно быть установлено получить доступ к базе данных? Это даже возможное в исходном приложении.
Чтобы использовать API базы данных, вам необходимо настроить WebView для приема вызовов базы данных HTML5:
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
...
settings.setDatabaseEnabled(true);
settings.setDatabasePath("/data/data/your.package.name/database_name");
Вы также можете переопределить метод onExceededDatabaseQuota вашего WebChromeClient, если хотите контролировать свою квоту хранилища:
public void onExceededDatabaseQuota(String url, String
databaseIdentifier, long currentQuota, long estimatedSize, long
totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) {
quotaUpdater.updateQuota(204801);
}