Ist es möglich, ein Ereignis zu starten, wenn ein UIWebView (Iphone) die URL geladen hat.UIWebView fertig geladen Ereignis
Wie kann ich herausfinden, die aktuelle URL des UIWebView?
Ist es möglich, ein Ereignis zu starten, wenn ein UIWebView (Iphone) die URL geladen hat.UIWebView fertig geladen Ereignis
Wie kann ich herausfinden, die aktuelle URL des UIWebView?
Ja, das ist möglich. Verwenden Sie das UIWebViewDelegate
Protokoll und implementieren Sie die folgende Methode in Ihre Stellvertretung:
- (void)webViewDidFinishLoad:(UIWebView *)webView
Wenn Sie die URL möchten, können Sie die letzte Anforderung mit der Eigenschaft erhalten request
:
webView.request.URL
Sehr einfache Methode:
Schritt 1: Delegat UIWebViewDelegate
in Header-Datei festlegen.
Schritt 2: In folgenden webViewDidFinishLoad
Methode aktuelle URL von webview
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"Current URL = %@",webView.request.URL);
//-- Add further custom actions if needed
}
Keine der gefundenen Lösungen für mich gearbeitet zu bekommen.
Dann fand ich dieses Beispiel, das zumindest viel besser funktioniert als jede andere Lösung, die ich bei Google/StackOverflow gefunden habe.
Pascal Antwort für den "immer die URL" Teil ist in Ordnung.
Jedoch!
Aus der Dokumentation von UIWebViewDelegate, von Apple: "webViewDidFinishLoad: Wird gesendet, nachdem eine Webansicht das Laden eines Frames beendet hat."
Rahmen! = Seite.
webViewDidFinishLoad wird aufgerufen, wenn die Seite "fertig geladen" wird. Es kann auch schon oft vorher aufgerufen werden. Seitenladungen von Amazon.com können ein Dutzend Aufrufe von webViewDidFinishLoad generieren.
Wenn Sie die Seitenquelle steuern, können Sie dafür einen Belastungstest durchführen, der für diesen Fall funktioniert. Wenn Sie nur danach gefragt werden, "nachdem die Seite geladen wurde", dann ist webViewDidFinishLoad ausreichend.
Für beliebige Seiten, mit beliebigem JavaScript, Laden von Werbebannern auf ewig, oder Autoscrolling Bannern, oder die Umsetzung eines Videospiels, ist die Idee einer Seite "fertig Laden" falsch.
Danke :) Es hat funktioniert :) – ishhhh
Sorry, um ein totes Thema zu wecken, tut aber die (UIWebview *) WebView, ist die WebView der Name der Steckdose Ihres Webview-Namen? –
@CameronTarbell Hierbei handelt es sich um eine Delegate-Methode, die in der Webansicht übergeben wird, die unabhängig von Ihrem Ausgangsnamen mit der Variablen "webView" geladen wurde. – Pascal