Получить загруженный список файлов ресурсов из веб-просмотра Android

Есть ли способ получить успешно загруженные и не загруженные файлы из URL-адреса в веб-просмотр Android. То есть, если я загружаю следующее,

  • 1.js, 2.js, 3.js
  • 1.CSS, 2.CSS, 3.CSS

на странице html и загрузите файл html в веб-просмотр Android.

Мне нужно перечислить загруженные файлы в веб-просмотре, а также те, которые не могут быть загружены в веб-просмотр Android. Я попытался использовать onConsoleMessage() из WebchromeClient, который обнаруживает только ошибку консоли. Этот метод не получает сообщения об ошибках для изображения css.

Возможно ли перечислить файлы из URL?


person Karthick    schedule 07.01.2015    source источник


Ответы (1)


Вы можете получить список ресурсов, которые WebView пытается загрузить, переопределив WebViewClient.shouldInterceptRequest следующим образом:

class MyWebViewClient extends WebViewClient {

    @Override
    public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
        android.util.Log.i("MyWebViewClient", "attempting to load resource: " + url);
        return null;
    }

    @Override
    public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
        android.util.Log.i("MyWebViewClient", "attempting to load resource: " + request.getUrl());
        return null;
    }

}

Помните, что shouldInterceptRequest вызывается в фоновом потоке, поэтому вам необходимо синхронизировать доступ к любым общим структурам данных.

Однако нет Java API, чтобы узнать, успешно ли WebView загрузил данный ресурс.

person marcin.kosiba    schedule 07.01.2015
comment
Это отлично работает, но я не могу найти shouldInterceptRequest() с 3 параметрами. - person Karthick; 07.01.2015
comment
@Картик - что? нет shouldInterceptRequest с 3 параметрами, я и не говорил, что он есть. Вторая версия shouldInterceptRequest доступна только по адресу targetSdk ›= 21. - person marcin.kosiba; 07.01.2015
comment
Благодарю за разъяснение. Я нашел этот метод и узнал о нем. - person Karthick; 08.01.2015