我在 android 中使用 webview 创建了一个 web 浏览器。我的目标是在加载之前控制 webview 的内容。每当 webview 的内容向任何域服务器发出请求时,它都必须通过shouInterceptRequest()。如果该 url 指向任何视频上传站点(youtube.com、vimeo.com),我可以将其更改为某个 Access Denied url,以便不会加载视频。
@Override
public WebResourceResponse shouldInterceptRequest(final WebView view, String url) {
try {
if (access.permission(url)) {
return super.shouldInterceptRequest(view, url);
}
} catch (Exception e) {
e.printStackTrace();
}
return getResponseData();
}
private WebResourceResponse getResponseData() {
try {
String str = "Access Denied";
InputStream data = new ByteArrayInputStream(str.getBytes("UTF-8"));
return new WebResourceResponse("text/css", "UTF-8", data);
} catch (IOException e) {
return null;
}
}
但shouInterceptRequest()可从 API 11 中获得。我需要它从 API 8 中工作。
有没有其他方法可以实现它?如果在加载任何数据之前指向任何视频上传网站,我需要阻止该 url。