を使用して実装された基本的な Web ブラウザーがありUIWebView
ます。UIWebViewDelegate
一部のページでは、どのメソッドも呼び出されていないことに気付きました。
これが発生するページの例: http://www.youtube.com/user/google . 問題を再現する手順は次のとおりです (コントローラーのメソッドNSLog
に呼び出しを挿入してください)。UIWebViewDelegate
- 上記の YouTube URL を
UIWebView
[ここではUIWebViewDelegate
、ページの読み込み時にメソッドが呼び出されることに注意してください] に読み込みます。 - ページの「アップロード」カテゴリをタッチします
- そのカテゴリの任意のビデオをタップします [問題:新しいページが読み込まれるが、UIWebView デリゲートが呼び出されないことに注意してください]
他のリンクを読み込むときにデリゲート メソッドが呼び出されるため、これは のデリゲートが正しく設定されていないという問題ではないことはわかっていUIWebView
ます (たとえば、YouTube の外に移動するリンクをクリックしようとすると、デリゲートに気付くでしょう)。メソッドが呼び出されます)。
私の最初の直感は、デリゲート メソッドを呼び出さない可能性がある AJAX を使用してページが読み込まれていることが原因である可能性があるということでした。しかし、iPhone の Safari を確認したところ、この問題は見られなかったので、私の側に問題があるに違いありません。
また、Three20'sTTWebController
にも私が抱えているのとまったく同じ問題があることに気付きました。
しかし、この問題から発生する問題は、デリゲート メソッドが呼び出されないと、UI を更新して、新しい要求が読み込まれたときに、前後のブラウジング ボタンを有効/無効にすることができないことです。
なぜこれが起こっているのか、または新しいリクエストが行われたときにUIを更新するためにどのように回避できますか?