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

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

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

Возможно ли это?

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

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

  • shouldOverrideUrlLoading
  • onLoadResource

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

onLoadResource запускается каждый раз, когда этот ресурс страницы (и изображения! thx to jessyjones) загружаются, но отменить это невозможно. Это также делает этот метод не подходящим для моей задачи. Он должен переключать вкладки при получении ctrl + tab. Но событие keypressed никогда не отправляется. Я попытался добавить его на панель и в ...

Я пытаюсь добавить ключевой слушатель, который содержит JTabbedPane .
Он должен переключать вкладки при получении Ctrl + Tab.
Но событие нажатия клавиш никогда не отправляется Я попытался добавить его на панель и на объект с вкладками, но безуспешно.

Вот мой код

SwitchTabsListener ctrlTabListener = new SwitchTabsListener(genericTabbedPanel);  
jMainFrame.addKeyListener(ctrlTabListener);  
genericTabbedPanel.addKeyListener(ctrlTabListener);  
9
задан Kevin Brown 29 December 2015 в 22:09
поделиться