2012-03-17 100 views
2

我已經爲此搜索了很多,但沒有找到任何答案。我正在開發一個android應用程序,在這個應用程序中,某個時候會顯示一個webview,向您顯示一個網頁。但我真的很擔心在網絡視圖上顯示色情內容的小廣告。有沒有什麼辦法可以阻止在網頁上加載?每種資源都通過onLoadingRecource()方法......這是我可以找到解決方案的地方嗎?我真的需要幫助。謝謝。如何阻止在webview中加載特定資源

回答

-3

該方法有2個參數,在你的web視圖中覆蓋它,並丟棄你想要避免的域開始的URL。

+0

我真的很抱歉,但請您可以用一小段代碼解釋這一點。這將是相當有益的 – 2012-03-17 05:35:34

+0

如何放棄? onLoadingRecource不允許放棄任何內容。 – 2012-06-04 09:28:51

-2

您可以使用下面的代碼來檢查是否加載它。 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

但如何使用onLoadResource停止連接(加載) – 2012-03-17 06:30:58

+0

的URL如果你不想加載該資源,然後嘗試停止調用超級。我不確定,但試試看。 – Pavandroid 2012-03-17 06:35:04

+0

不打電話超級沒有工作...任何orher的方式? – 2012-03-17 08:39:08

4

由於API 11有WebViewClient.shouldInterceptRequest,因此您可以在此處捕獲嵌入對象(圖像等)的加載並將其替換爲您自己的圖像。 例如:

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

你必須檢測自己想要什麼來取代什麼。

關於API < 11這可能會更復雜(我還不知道如何)。

2

通過將JavaScript注入WebView,可以從頁面中刪除任何元素。下面是如何將JavaScrpt注入WebView以刪除具有其ID的元素的示例:

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); " + 
        "})()");   
}