webview не загружает страницы должным образом, если данные приложения не очищены - PullRequest
0 голосов
/ 25 марта 2019

У меня есть гибридное приложение для Android, которое использует webView для загрузки большого количества веб-страниц, большого в смысле содержания.На одной из страниц есть кнопка, которая позволяет пользователю сделать голосовой вызов с помощью:

                startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(URL)));

Проблема в том, что при первом запуске приложения все работает нормально, но после запуска пользователязагрузка нескольких других страниц (может быть много), когда страница с кнопкой для вызова загружает эту кнопку вызова, не будет работать.Да, сенсорное событие работает, потому что onClick всплывающее окно появляется, как и должно быть, но ACTION_DIAL не работает.И набор текста внутри текстовых полей становится очень запаздывающим.

Эта же страница отлично работает на других вновь установленных устройствах

shouldOverrideUrlLoading

   @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        {
            if (url.startsWith("tel:")) {
                startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(url)));
                return true;
            }
            return false;
        }

WebSettings

settings.setBuiltInZoomControls(true);
settings.setDisplayZoomControls(false);
settings.setLoadWithOverviewMode(true);
settings.setUseWideViewPort(true);
settings.setJavaScriptEnabled(true);
settings.setAppCacheEnabled(false);
settings.getJavaScriptCanOpenWindowsAutomatically();
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);

webView.setWebViewClient(new WebViewClient());
webView.setWebChromeClient(new WebChromeClient());
webView.requestFocusFromTouch();
webView.requestFocus(View.FOCUS_DOWN);
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);

Однако после очистки данных приложения из Настройки -> Установленные приложения и при перезапуске все работает нормально, но через день или два снова происходит то же самое.

Я переключил эти вещи, но не использовал:

        settings.setAppCacheEnabled(true);
    settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...