Как я называю window.openDatabase от webView размещенным в приложении андроида?

Я создал собственное приложение для Android, которое в основном размещает управление webView. Это webView затем используется для загрузки страницы, которая называет window.openDatabase от JavaScript. Я могу успешно подтвердить, что API существует путем проверки window.openDatabase.

Вызов этого метода возвращает пустой указатель при вызове в размещенном управлении webView. Вызов того же метода в Браузере Android возвращает экземпляр базы данных.

Кто-либо знает полномочия в декларации или настройках на управлении webView, которое должно быть установлено получить доступ к базе данных? Это даже возможное в исходном приложении.

5
задан Kevin 19 March 2010 в 01:37
поделиться

1 ответ

Чтобы использовать 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);
} 
8
ответ дан 18 December 2019 в 14:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: