Обработчик протокола Android WebView

Я пытаюсь разработать приложение для браузера Android, используя WebView, который позволяет пользователям для доступа к содержимому из пользовательского протокола. Пользовательский протокол может быть foobar://.

Я хочу перехватывать все запросы к этому пользовательскому протоколу. Это означает:

  1. ПОЛУЧИТЬ запросы
  2. POST-запросы

и мне нужно иметь возможность передавать результаты этих операций обратно в WebView.

Запросы GET можно обрабатывать с помощью shouldInterceptRequest (доступно с уровня API 11).

Теперь моя проблема: Как я могу получать и обрабатывать запросы POST?

Почти тот же вопрос был задан здесь и здесь , однако решения их проблем не найдено.


person foens    schedule 30.11.2011    source источник
comment
Вы пытались переопределить загрузку URL-адреса?   -  person Raykud    schedule 06.06.2012


Ответы (1)


Вы пытались переопределить метод post, выполнив что-то вроде:

private class ViewerWebViewClient extends WebViewClient {

        @Override
        public void onPageFinished( WebView view, String url ) {

        }

        @Override
        public boolean shouldOverrideUrlLoading( WebView view, final String url ) {
            if(!url.contains(MYKEYWORD))
                {
                Toast.makeText(getActivity(),POSTING, Toast.LENGTH_LONG).show();
                return true;
                }
            return super.shouldOverrideUrlLoading(view, url);
        }
    }

это просто идея. что, возможно, могло бы помочь вам.

person Raykud    schedule 06.06.2012
comment
Это полезно, если пользователь переходит по какому-то URL-адресу и покидает текущую страницу. Затем я могу использовать WebView.loadUrl(...) или .post(...). Однако, если браузер просто выполняет фоновый запрос (например, javascript), я не могу вернуть для него содержимое. shouldInterceptRequest может обрабатывать запросы GET и возвращать контент, но невозможно перехватывать запросы POST и получать данные POST. К сожалению, ваш метод не решает проблему. Спасибо за попытку! - person foens; 08.06.2012