在android webview中阻止视频 - 替代shouldInterceptRequest()

时间:2012-07-13 13:06:57

标签: java android webview

我在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开始工作。

有没有其他方法可以实现它?如果在加载任何数据之前对任何视频上传网站进行封装,我需要阻止该网址。

1 个答案:

答案 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)