“shouldinterceptrequest”如何阻止某些网址?

时间:2018-02-18 21:20:29

标签: android

我正在尝试制作一个小广告块Android应用,可以拒绝从预定义(拒绝)域获取webview内容的资源。

主要是拒绝.js请求不向网站加载广告

@Override
    public WebResourceResponse shouldInterceptRequest (final WebView view, WebResourceRequest request) {
        if (url.contains("www.example.com")) {
            return false; // want to block loading resource from this domain
        } 
    }

我找到了一些例子,但我仍然没有解决。请帮我。谢谢。

1 个答案:

答案 0 :(得分:0)

@Override
public WebResourceResponse shouldInterceptRequest (final WebView view, WebResourceRequest request) {
    if (url.contains("www.example.com")) {
        return new WebResourceResponse("text/javascript", "UTF-8", null);
    } 
}

您也可以按照以下代码

    public class MyWebViewClient extends WebViewClient {
public boolean shouldOverrideUrlLoading (WebView view, String url) {
    if (Uri.parse(url).getHost().equals("http://Your_website_url")) {
         // This is my web site, so do not override; let my WebView load the page
         return false;
    }

    // reject anything other
    return true;
}
}
mWebview.setWebViewClient(new MyWebViewClient());  //set the webviewClient

当新的URL即将加载到当前的WebView中时,让主机应用程序有机会接管控件。如果提供了WebViewClient,则返回true表示主机应用程序处理url,而return false表示当前的WebView处理网址。