如何检查WebView是否需要加载远程网络资源?

时间:2013-11-26 18:45:36

标签: android webview android-webview android-websettings

我正在使用WebView呈现从字符串加载的本地HTML页面,并且出于安全原因需要阻止加载任何外部资源,但需要通知用户是否实际阻止了任何内容并为用户提供了完全加载带有远程图像/脚本的页面。

我最初使用webView.getSettings().setBlockNetworkLoads(true)屏蔽网络资源。这很好用。接下来,我需要确定加载的HTML内容是否实际包含对被阻止的外部网络资源的任何引用。谁能告诉我怎么做?

我希望这可以与API 8一起使用

1 个答案:

答案 0 :(得分:0)

您需要执行以下操作:

class MyWebViewClient extends WebViewClient { 
    @Override
    public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
        // This method will get called when resources are to be loaded
        return new WebResourceResponse(null, null, new ByteArrayInputStream(new byte[0]));
    }
}

然后将此客户端分配给您的webview并在上述方法中处理资源加载。

这样您就可以在不使用setBlockNetworkLoads(true)方法的情况下禁用加载外部资源并同时获取回调。