UIWebViewは、イベントのロード終了しました
質問
それはのUIWebView(iPhoneは)URLのロードが完了したときにイベントを開始することが可能となります。
どのように私は、のUIWebViewの現在のURLを見つけることができますか?
解決
はい、それは可能です。 UIWebViewDelegate
プロトコルを使用して、デリゲートに次のメソッドを実装します:
- (void)webViewDidFinishLoad:(UIWebView *)webView
あなたはURLをしたい場合、あなたは、プロパティrequest
を使用して最後の要求を取得することができます:
webView.request.URL
他のヒント
が見つかりソリューションのどれもが私のために働いていない。
それから私は、少なくとも私はGoogleの/ StackOverflowの上で見つかった他のソリューションよりもはるかに良い作品。この例を見つけます。
の非常に簡単な方法:の
のステップ1:のヘッダファイルに、デリゲートUIWebViewDelegate
を設定します。
のステップ2:のwebViewDidFinishLoad
の現在のURLを取得するには、次のwebview
メソッドを追加します。
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"Current URL = %@",webView.request.URL);
//-- Add further custom actions if needed
}
「URLを取得」の部分のためのパスカルの答えは結構です。
しかし!
UIWebViewDelegateのドキュメントから、アップルから: 「webViewDidFinishLoad:Web表示は、フレームのロードが終了した後に送信されます。」
フレーム!=ページます。
ページは、「読み込み完了」されたときにwebViewDidFinishLoadが呼び出されます。また、それ以前に何度も呼び出すことができます。 Amazon.comからのページの負荷がwebViewDidFinishLoadにダース・コールを生成することができます。
あなたはページのソースをコントロールしている場合、、その後、あなたはそれのための負荷テストを行うことができます、そしてそれは、その場合のために、動作します。あなただけ呼ばばかりを気にした場合は、「ページの読み込みが完了した後」、そしてwebViewDidFinishLoadで十分です。
任意のページでは、任意のJavaScriptで、永久に広告バナーをロードする、またはバナーを自動スクロール、またはビデオゲームを実装、「済ロード」というページの非常にアイデアがwrongheadedです。