我在android中使用webview创建了一个Web浏览器。我的目标是在加载之前控制webview的内容。只要webview的内容向任何域服务器发出请求,它就必须通过shoulInterceptRequest()。如果网址指向任何视频上传网站(youtube.com,vimeo.com),我可以将其更改为某些拒绝访问的网址,以便不会加载视频。
@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;
}
}
但{11}可从API 11获得。我需要它从API 8开始工作。
有没有其他方法可以实现它?如果在加载任何数据之前对任何视频上传网站进行封装,我需要阻止该网址。
答案 0 :(得分:1)
如何使用http://developer.android.com/reference/android/webkit/WebViewClient.html#shouldOverrideUrlLoading(android.webkit.WebView,java.lang.String)事件?
您可以阻止该网址然后调用http://developer.android.com/reference/android/webkit/WebView.html#loadUrl(java.lang.String)以显示您想要的任何内容(甚至使用“javascript:do_something()”表示法运行任意javascript)