Android WebView получить значения локального хранилища - PullRequest
0 голосов
/ 07 мая 2019

Я использую 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);
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...