2013-11-26 37 views
0

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

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

,我想这与API 8

回答

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])); 
    } 
} 

那么这个客户端分配到的网页视图,并在上面的方法处理资源加载。

这样,您应该能够禁用加载外部资源,而不使用setBlockNetworkLoads(true)方法并同时获取回调。

+0

当我尝试这样做时,点击不再被默认浏览器解释,而是在我的WebView中加载。如何默认使用标准浏览器进行点击事件? – Marcin