我正在使用 WebView 呈现从字符串加载的本地 HTML 页面,出于安全原因需要阻止加载任何外部资源,但需要通知用户是否实际阻止了任何内容,并为用户提供使用远程完全加载页面的选项图像/脚本。
我最初使用webView.getSettings().setBlockNetworkLoads(true)
. 这很好用。接下来,我需要确定加载的 HTML 内容是否实际上包含对被阻止的外部网络资源的任何引用。谁能告诉我该怎么做?
我希望这可以与 API 8 一起使用
我正在使用 WebView 呈现从字符串加载的本地 HTML 页面,出于安全原因需要阻止加载任何外部资源,但需要通知用户是否实际阻止了任何内容,并为用户提供使用远程完全加载页面的选项图像/脚本。
我最初使用webView.getSettings().setBlockNetworkLoads(true)
. 这很好用。接下来,我需要确定加载的 HTML 内容是否实际上包含对被阻止的外部网络资源的任何引用。谁能告诉我该怎么做?
我希望这可以与 API 8 一起使用
您需要执行以下操作:
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)
方法的情况下禁用加载外部资源并同时获取回调。