Android 如何阻止在webview中加载特定资源

Android 如何阻止在webview中加载特定资源,android,webkit,webview,Android,Webkit,Webview,我找了很多,但没有找到任何答案。我正在开发一个android应用程序,在这个应用程序中,会显示一个网络视图,向您显示一个网页。但我真的很担心网络视图上显示色情内容的小广告。有没有什么方法可以阻止它加载到网页上?每个资源都通过onLoadingResource()方法…这是我可以找到解决方案的地方吗?我真的需要帮助。谢谢。该方法有2个参数,在您的webview中覆盖它,并放弃以您想要避免的域开头的URL 您可以使用下面的代码检查是否加载它。其中webview是webview的对象 webview.

我找了很多,但没有找到任何答案。我正在开发一个android应用程序,在这个应用程序中,会显示一个网络视图,向您显示一个网页。但我真的很担心网络视图上显示色情内容的小广告。有没有什么方法可以阻止它加载到网页上?每个资源都通过
onLoadingResource()
方法…这是我可以找到解决方案的地方吗?我真的需要帮助。谢谢。

该方法有2个参数,在您的webview中覆盖它,并放弃以您想要避免的域开头的URL

您可以使用下面的代码检查是否加载它。其中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();
          }
        });
我认为这将对您有所帮助。

自API 11以来,您可以在这里捕获嵌入对象(图像等)的加载,并将其替换为您自己的图像。 例如:

WebResourceResponse wr = new WebResourceResponse("", "", new FileInputStream("/sdcard/aaa.jpg"));
return wr;
你必须发现自己想要什么,用什么来代替什么


在API上,您可以通过将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); " +  
                    "})()");         
}

我真的很抱歉,但请你用一个小片段来解释一下。这确实很有帮助,但是如何使用onLoadResource停止url连接(加载)如果您不想加载该资源,请尝试停止调用super。我不确定,但试一下。我正在寻找这个。。如果我找到任何解决方案,我会回复你的。super.onLoadResource完全不做任何事情,如果你研究了Android源码,你就会知道这一点。这里没有什么可丢弃的。