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 をブロックする必要があります。