7

を使用してUIWebViewコンテンツを表示しています。このコンテンツ内で、ユーザーはAJAXを使用してロードされている一連のサイトをナビゲートできます。このサイトでの1つのステップには、かなりの時間がかかります。timeoueについて何も見つからなかったので、最初にロードするUIWebViewときに設定しようとしました。NSURLRequest

残念ながら、これは何もしないようです。自分でタイムアウトを設定することになっているのかよくわかりませんか?足りないものはありますか?UIWebViewタイムアウトを上書きしますか?私はこれについて少し混乱しているので、助けていただければ幸いです。:)

ベスト
–f

アップデート

UIWebViewタイムアウトでどのように機能するかについての私の「理論」を検証するために、テストプロジェクトを構築しました。設定は次のとおりです。

  • 結果を送信するまでスリープする時間を設定できるパラメーターを持つsleep.phpというPHPファイル
  • 次のようにsleep.phpをロードするwebViewである単一のビューを持つ小さなXcodeプロジェクト:

    NSURLRequest * request = [NSURLRequest requestWithURL:url cachePolicy:NSURLCacheStorageAllowed timeoutInterval:10]; [webView loadRequest:request];

したがって、secondsパラメーターで遊んでいると、正常に機能することがわかりUIWebViewました。タイムアウトに応じて、webViewDidFinishLoad:またはどちらかを取得します。webView:didFailLoadWithError:

アドバタイズされたとおりに機能することを確認した後timeoutInterval、proxy.php(5秒と15秒で構成されたsleep.phpへの2つのリンクがあります)を持ち込み、要求構成が新しい要求に対してまだ有効かどうかを確認しました。NSURLRequestproxy.phpを使用するようにイニシャルを変更しましたが、タイムアウトのために10秒の構成を残しました。

アプリを起動すると、2つのリンクが表示されています。最初のものをクリックすると、5秒後に期待どおりに読み込まれます。残念ながら、2番目のリンクも15秒後にロードされます。

したがって、再構成する最初の試みは、NSURLRequestで変更することですwebView:shouldStartLoadWithRequest:navigationType:。残念ながら、WebサービスはAJAXで動作するため、デリゲートメソッドは呼び出されません。

他に何か提案はありますか?全体のタイムアウト値をグローバルに構成する方法はありますUIWebViewか?

ベスト
–f

4

2 に答える 2

2

独自の custom でUIWebViewデリゲートを監視することに興味があるかもしれません。webViewDidFinishLoadingNSTimer

また、サーバーが応答を受け取るまで問題が発生している場合は、タイムアウトを設定できNSURLConnection ます requestWithURL:cachePolicy:timeoutInterval:

于 2011-04-26T09:28:17.853 に答える
0

UIWebViewは同じものを何度も使用しないことがわかりましたNSURLRequest。したがって、私の答えは、のタイムアウトをグローバルに構成することはできないということUIWebViewです。

于 2011-06-23T13:20:41.010 に答える