2

Androidでwebviewを使用してWebブラウザーを作成しました。私の目的は、ロードされる前に webview のコンテンツを制御することです。webview のコンテンツが任意のドメイン サーバーにリクエストを送信するたびに、shoulInterceptRequest()を通過する必要があります。URL が動画アップロード サイト (youtube.com、vimeo.com) を指している場合、動画が読み込まれないようにアクセス拒否 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;
        }
    }

しかし、shoulInterceptRequest()は 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 に答える