Я использую Android WebView для загрузки URL-адреса, веб-приложение использует кэш и сохраняет значение в браузере Приложение -> Локальное хранилище -> www.123xyz.com -> Скоринг
Всякий раз, когда происходит какое-либо действие в веб-приложении, оно сохраняется в локальном хранилище и работает нормально.
Теперь я хочу получить значения локального хранилища и сохранить их в базе данных SQLite для Android. Если веб-приложение работает неправильно, я хочу получить значения из базы данных SQLite и установить его в ключе оценки локального хранилища
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.getSettings().setDatabaseEnabled(true);
Log.e("Database",getFilesDir().getParentFile().getPath()+"/databases/");
mWebView.getSettings().setDatabasePath(getFilesDir().getParentFile().getPath()+"/databases/");
mWebView.getSettings().setAppCacheMaxSize(1024*1024*8);
Log.e("Cache",getApplicationContext().getCacheDir()+"/scoring");
mWebView.getSettings().setAppCachePath( getApplicationContext().getCacheDir()+"/scoring");
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setAppCacheEnabled(true);
mWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
String url= getResources().getString(R.string.scoringurl);
mWebView.loadUrl(url);
Обновление:
Теперь я могу получить доступ к локальному хранилищу с помощью приведенного ниже кода и получить значения. Теперь я хочу получать это значение каждые 30 секунд или всякий раз, когда происходит изменение в локальном хранилище.
Есть ли способ сделать это? Я думаю, что это должно быть сделано через таймер и без замедления приложения, кто-нибудь может мне помочь.
mWebView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
view.evaluateJavascript("javascript:window.localStorage.getItem('scoring')", new ValueCallback<String>() {
@Override public void onReceiveValue(String s) {
Log.e("OnRecieve",s);
}
});
super.onPageFinished(view, url);
}
});