2012-05-13 9 views
3

これは間違いなくウェブページに関するより一般的な問題ですが、Googleのコンテンツで簡単に説明できます。なぜUIWebViewのGoogle検索結果がwebViewDidFinishLoadをトリガーしないのですか?

Googleのホームページに検索条件を入力すると、結果はwebViewDidFinishLoadメソッドをトリガーしません。同じ問題は、色付きのGoogleロゴが、機能ページにリンクされたアートワークに置き換えられた場合に発生します。

JavaScriptやajaxコードのためにページが完全に読み込まれていない可能性がありますので、これを検出する方法はありますか?

答えて

3

これは、Googleがこれを行うためにAJAXを使用しているため、webViewDidFinishLoadデリゲートメソッドが呼び出されます。これは、WebViewに新しいリソースがロードされたときです。ブラウザのページ読み込みに相当します。そのメソッドがトリガーされることはありません。

ページの一部がロードされているとき(JavaScript、スタイルシート、またはajaxレスポンス)を検出する方法はありません。

あなたができることの1つは、結果がいつ発生したかを知ることができるページの高さが変わるまで待って、ページの高さを示すウェブビューにJavaScriptの行を実行することです。検索クエリーが変更されたときに、よりスマートなチェックを行うようにしなければならないでしょうが、私の考えは最初の結果ページへの最初のGoogleロゴ画面では機能します。

JSを数秒ごとに実行すれば十分です。

希望があれば

関連する問題