2

UIWebViews を多用して Web から読み込まれたコンテンツを表示するアプリを使用しています。ほとんどの場合、これはうまく機能しますが、ときどき (特に 3G で) 接続の問題によってロードが中断されます。

メインの Web ビューの場合、デリゲートで webView:didFailLoadWithError: が呼び出されるため、これは問題になりません。ただし、ページの HTML には、他の Web リソースを参照する および タグが含まれているため、非常にまれに、最初の要求が通過しても、これらの後続の要求の 1 つが失敗します。

NSURLProtocol サブクラスを使用してこれらの失敗の処理をトリガーできるようにする必要があるようですが、initWithRequest:cachedResponse:client: では、どの UIWebView が要求を開始したかを判断する方法が見つかりません (そのため、その通知を行うことができます)。ユーザーに何かを表示するデリゲート)。また、これらのリクエストのいずれかが起動されたときに呼び出されるデリゲート メソッドも見つかりません (webView:shouldStartLoadWithRequest:navigationType: は、window.location.href 割り当ておよび同様のメイン ドキュメント リクエストに対してのみ呼び出され、セカンダリ リクエストでは呼び出されません)。これらのセカンダリ リクエストの 1 つが失敗したことを検出する最も簡単な方法 (および、それがロードしようとしている URL と、それを作成している UIWebView) は何ですか?

4

1 に答える 1