Как заблокировать загрузку определенного ресурса в веб-просмотр? - PullRequest
2 голосов
/ 17 марта 2012

Я много искал для этого, но не нашел ответов.Я разрабатываю приложение для Android, в котором в какой-то момент отображается веб-просмотр, который показывает вам веб-страницу.Но я очень беспокоюсь о небольшой рекламы на веб-просмотра, который показывает содержание порно.Можно ли как-то заблокировать загрузку на веб-странице?Каждый ресурс проходит метод onLoadingRecource() ... Это место, где я могу найти решение?Мне действительно нужна помощь.Спасибо.

Ответы [ 4 ]

4 голосов
/ 04 июня 2012

Начиная с API 11, существует WebViewClient.shouldInterceptRequest , здесь вы можете отследить загрузку встроенных объектов (изображений и т. Д.) И заменить их своим собственным изображением. Например:

WebResourceResponse wr = new WebResourceResponse("", "", new FileInputStream("/sdcard/aaa.jpg"));
return wr;

Вы должны определить, что хотите заменить чем-либо.

В API <11 может быть сложнее добиться этого (я пока не знаю, как). </p>

2 голосов
/ 23 марта 2013

Вы можете удалить любой элемент со страницы, вставив JavaScript в WebView. Ниже приведен пример того, как внедрить JavaScrpt в WebView для удаления элемента с его идентификатором:

public void onLoadResource(WebView view, String url) {
        super.onLoadResource(view, url);

         // Removes element which id = 'mastHead'
         view.loadUrl("javascript:(function() { " +  
                    "(elem = document.getElementById('mastHead')).parentNode.removeChild(elem); " +  
                    "})()");         
}
0 голосов
/ 17 марта 2012

Вы можете использовать приведенный ниже код, чтобы проверить, загружать ли его нет.Где webview - это объект для WebView.

webview.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                // TODO Auto-generated method stub
                super.onPageStarted(view, url, favicon);
                Toast.makeText(activity,"onPageStarted url :"+url, Toast.LENGTH_LONG).show();
            }
            @Override
                public void onLoadResource(WebView view, String url) {
                    // TODO Auto-generated method stub
                    super.onLoadResource(view, url);
                    Toast.makeText(activity,"Connecting url :"+url, Toast.LENGTH_LONG).show();
                }
          public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
          }
        });

Я думаю, это поможет вам.

0 голосов
/ 17 марта 2012

У метода есть 2 параметра, переопределите его в своем веб-просмотре и отбросьте URL, начиная с домена, которого вы хотите избежать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...