UIWebView(Iphone)がURLのロードを完了したときにイベントを開始することは可能ですか?.
UIWebViewの現在のURLを確認するにはどうすればよいですか?
はい、可能です。 UIWebViewDelegate
プロトコルを使用して、デリゲートに次のメソッドを実装します。
- (void)webViewDidFinishLoad:(UIWebView *)webView
URLが必要な場合は、プロパティrequest
を使用して最後のリクエストを取得できます。
webView.request.URL
見つかった解決策はどれも私にとってうまくいきませんでした。
次に、Google/StackOverflowで見つけた他のどのソリューションよりもはるかに優れたこの例を見つけました。
「URLを取得する」部分に対するPascalの回答は問題ありません。
しかしながら!
UIWebViewDelegateのドキュメント、Appleから:「webViewDidFinishLoad:Webビューがフレームの読み込みを完了した後に送信されます。」
フレーム!=ページ。
webViewDidFinishLoadは、ページの「読み込み完了」時に呼び出されます。それまでに何度も呼び出すこともできます。 Amazon.comからページをロードすると、webViewDidFinishLoadへの12の呼び出しが生成される可能性があります。
ページのソースを制御している場合は、そのページの負荷テストを行うことができ、その場合は機能します。 「ページのロードが完了した後で」呼び出されることだけに関心がある場合は、webViewDidFinishLoadで十分です。
任意のページ、任意のJavaScript、永続的な広告バナーのロード、自動スクロールバナー、またはビデオゲームの実装では、ページの「ロードが完了」するという考え自体が間違っています。
非常に単純な方法:
ステップ1:ヘッダーファイルにデリゲートUIWebViewDelegate
を設定します。
ステップ2:次のwebViewDidFinishLoad
メソッドを追加して、webview
の現在のURLを取得します
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"Current URL = %@",webView.request.URL);
//-- Add further custom actions if needed
}