4

この質問が何度か聞かれたことは知っていますが、まだ明確な答えはありません。あなたの考えを教えてください。

要件:- アプリケーションは、「ホワイトリストに登録された」URL のみを表示およびアクセスできるブラウザです。たとえば、Yahoo.com はホワイトリストに登録されていますが、Youtube は登録されていません。Yahoo の Web ページに Youtube ビデオが埋め込まれている場合があります。この場合、ブラウザで埋め込みビデオをまったく表示しないようにします。つまり、Webview の一部をブロックします。

調査結果:-

1) 2 つの方法があります。1 つはshouldOverrideUrlLoading()オーバーライドして、リンクを開くかどうかを決定する方法です。2 つ目は shouldInterceptRequest()[上記の 3.0] で、こちらのようにページのコンテンツをオーバーライドして変更できます。ただし、Web ページの個々のコンテンツを変更する場合は役に立ちません。 onLoadResource()ロードされる各リソースに対して呼び出されるメソッドですが、それをオーバーライドしてカスタム コンテンツを表示することはできません。ロードされる内容を変更できれば、onLoadResource に似たものが完璧なソリューションでした。(セキュリティ上の問題の可能性があります)

2) HTML コンテンツを変更する :- HTTPClient を使用してページ コンテンツをダウンロードし、それを Webview にロードする方法はいくつかあります。ここでの方法は、HTML を変更して、ブロックされたコンテンツを「サイトがブロックされました」メッセージに置き換えることです。ここでの問題は、その方法が完全な証明であるかどうかです。ここでJavaScriptに問題がありますか?

3) Javascript を使用してページの内容を変更します。(何か例はありますか?) 私はこれを見ました。ブラックリストに登録された URL を含むタグを置換/削除するために参照できる例は他にありますか?

4) 私が求めていることを行うことはできません。

4

0 に答える 0