2

我在 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。

4

1 回答 1

1

如何使用http://developer.android.com/reference/android/webkit/WebViewClient.html#shouldOverrideUrlLoading(android.webkit.WebView , java.lang.String) 事件?

您可以阻止 url,然后调用http://developer.android.com/reference/android/webkit/WebView.html#loadUrl(java.lang.String ) 来显示您想要的任何内容(甚至使用“ javascript:do_something()" 符号)

于 2012-07-13T15:22:11.043 回答