Hybrid开发中如何拦截WebView加载的外部资源?
在做Hybrid开发时,WebView加载H5页面会自动请求外部CDN的图片和CSS,怎么拦截这些资源请求呢?我试过用shouldInterceptRequest拦截特定域名,但发现内联base64图片还是会被加载,而且控制台报跨域错误。
现在用的是如下拦截逻辑:
webView.webViewClient = object : WebViewClient() {
override fun shouldInterceptRequest(view: WebView?, request: WebResourceRequest?): WebResourceResponse? {
if (request?.url?.host?.contains("external-cdn.com") == true) {
return WebResourceResponse(null, null, null)
}
return super.shouldInterceptRequest(view, request)
}
}
但发现页面字体图标还是在加载,可能因为CSS里用了相对路径?有没有更全面的拦截方案?
另外确保你启用了 setBlockNetworkImage(false),不然图片可能被提前阻断。