Перехватывать и переопределять HTTP-запросы от WebView

У меня в приложении есть WebView, в котором открыт какой-то сайт (всегда один и тот же, это моя собственная страница). На сайте есть код JS, который загружает изображения с удаленного хоста.

Я хочу перехватывать запросы к таким изображениям (по шаблону URL) и возвращать свой контент (т. Е.другое изображение) или оставьте запрос нетронутым в зависимости от внутренней логики приложения.

Возможно ли это сделать?

РЕДАКТИРОВАТЬ : Текущее состояние вопроса ...

WebView имеет возможность установить WebViewClient (как отмечает Аксаридакс). WebViewClient имеет два полезных метода

  • shouldOverrideUrlLoading
  • onLoadResource

shouldOverrideUrlLoading может перехватывать любую загрузку URL, если загрузка инициируется взаимодействием со страницей (т. Е. Нажата ссылка на странице, WebView.loadURL ("") не запускает этот метод). Он также может отменить загрузку URL, вернув false. Этот подход непригоден для использования, потому что он не может перехватить загрузку ресурсов страницы (а изображения, которые мне нужно перехватить, являются таким ресурсом страницы).

onLoadResource запускается каждый раз, когда загружается ресурс страницы (и изображения! Спасибо jessyjones), но отменить это невозможно. Это также делает этот метод не подходящим для моей задачи.

60
задан Jonik 7 June 2017 в 10:43
поделиться