Frage

Ist es möglich, ein Ereignis zu starten, wenn ein UIWebView (iPhone) beendet hat, die URL zu laden.

Wie kann ich herausfinden, die aktuelle URL der UIWebView?

War es hilfreich?

Lösung

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 request erhalten:

webView.request.URL

Andere Tipps

Keine der gefundenen Lösungen für mich gearbeitet.

Dann fand ich dieses Beispiel, das zumindest viel besser als jede andere Lösung funktioniert ich auf Google / Stackoverflow gefunden.

UIWebView-load-Completion-tracker

Sehr einfache Methode:

Schritt 1:. Delegat UIWebViewDelegate in Header-Datei

Schritt 2: Fügen Sie folgende webViewDidFinishLoad Methode aktuelle URL von webview zu bekommen

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSLog(@"Current URL = %@",webView.request.URL);

    //-- Add further custom actions if needed 
}

Pascal Antwort für den „immer die URL“ Teil ist in Ordnung.

Allerdings!

Von UIWebViewDelegate in der Dokumentation von Apple: „WebViewDidFinishLoad: Sent nach einer Web-Ansicht einen Rahmen fertig geladen.“

Rahmen! = Seite.

webViewDidFinishLoad wird aufgerufen, wenn die Seite „fertig geladen“ wird. Es kann auch viele Male vor der dann aufgerufen werden. Seite Lasten von Amazon.com kann ein Dutzend Anrufe webViewDidFinishLoad erzeugen.

Wenn Sie die Seite Quelle steuern, dann können Sie einen Belastungstest für sie machen, und es wird funktionieren, für diesen Fall. Wenn Sie nur über Pflege genannt zu werden „nachdem die Seite fertig geladen ist“, dann ist webViewDidFinishLoad ausreichend.

Für beliebige Seiten, mit beliebigen JavaScript, Werbebannern in Permanenz Laden oder Banner Autoscrolling oder ein Videospiel Umsetzung der Idee einer Seite zu sein „fertig geladen“ verbohrt ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top