2

ロードするコンテンツを完全に制御できる Webview を作成したいと考えています。基本的に、URL で指定されたさまざまな Web サーバーの役割を果たすクラスのインスタンスを提供したいと考えています。理想的には、この Web ビューにデリゲートを提供し、デリゲートに必要な各 URL を伝え、デリゲートが MIME タイプとデータで応答するようにします。

これを行う 1 つの方法は、文字通り Web サーバーをカスタム ポート (たとえば 2222) で実行し、http://localhost:2222/initial/base/url のような初期 URL を提供することです。ただし、これは、他のホストへの絶対 URL ではなく、同じホスト上の相対 URL のみをインターセプトできるようにします。

ドキュメントで見た WebView デリゲートは、どの URL を読み込むかのポリシーを選択したり、読み込みの進行状況を監視したりするなど、ユーザーが高度な制御を行えるように見えますが、読み込まれたデータ自体を傍受して制御する機能はありません。 .

この目標を達成する方法についてのヒントはありますか?

4

1 に答える 1

0

NSURLProtocolがこの機能を果たします。クラスをプロトコル (プロトコル ハンドラーと呼ぶ方が適切かもしれません) として登録すると、すべての NSURLRequest がルーティングされて、それを処理できるかどうかが尋ねられます。YES と答えると、オブジェクトは URL 読み込みプロセスを完全に制御できます。これはメインの URL 読み込みエンジンに結び付けられるため、すべての WebView、NSURLConnections などを処理します。その他のポインタについては、この質問を参照してください。

于 2010-01-29T21:22:56.693 に答える