Swift 3 - Überprüfen Sie, ob WKWebView Seite geladen hat
Meine Frage:
Wie kann ich prüfen, ob eine Seite in WKWebView vollständig geladen in Xcode mit Swift 3?
Dies ist mein problem:
Webseite 1:
Von dieser Seite habe ich ein laden-Webseite 2
Webseite 2:
Ich brauche, um die html-Daten aus der Webseite 2, aber wenn ich drucken Sie die HTML-Daten bekomme ich HTML-Daten von Webseiten 1, die ich nicht will. Aber wenn ich drucken HTML-Daten 2 Sekunden später gibt er mir den richtigen HTML-Daten.
Muss ich wissen, ob oder nicht eine Seite in WKWebView hat geladen. Ich sehe in der WebView geladen und auch die progressbar voll geladen, aber wenn ich drucken html Daten der Seite bekomme ich die html-Daten auf der vorherigen Seite, das ist nicht das, was ich will. Nur wenn ich eine Sekunde warten, es gibt die richtigen Daten, die wahrscheinlich dazu führen, dass Webseite 2 ist geladen.
Also wie kann ich Xcode, html drucken, wenn die nächste Seite ist komplett geladen?
Habe ich versucht mehrere Methoden:
Vielleicht kann ich verwenden:
wenn webView.isloading { get }
aber ich weiß nicht, wie zu implementieren Sie diese Methode und wenn es funktionieren sollte.
Ich habe versucht, verschiedene Methoden vom Stack, aber diese sind nicht für mich arbeiten oder veraltet sind.
Tun Sie Jungs wissen, eine Lösung für dieses problem in Swift 3?
Danke!
WKNavigationDelegate
, und auch func webView(WKWebView, didFinish: WKNavigation!)
, hat Sie Hilfe?Hi, vielen Dank für Ihre Antwort. Es hat nicht helfen, für mich, aber vielleicht ich weiß nicht wie ich diese umsetzen Methoden der richtige Weg. Wissen Sie, wie Sie diese Methode implementieren: developer.apple.com/documentation/webkit/wknavigationdelegate/... ?
Verwenden diese Methode, machen Sie Ihre view-controller-Klasse entsprechen den
WKNavigationDelegate
- Protokoll implementieren, die Methode innen Ihre view-controller-Klasse. Es sollen Beispiele online wie diese.Danke @paulvs ! Wusste nicht, dass es war, dass einfach zu implementieren ist eine Methode aus der apple-Dokumentation!
InformationsquelleAutor Stef | 2017-08-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Antwort (vielen Dank an @paulvs )
Prüfen Sie, ob Ihr WKWebView geladen hat einfach die folgende Methode implementieren:
didFinish navigation: WKNavigation!) {
print("geladen") }
Ergebnis: Es wird gedruckt "geladen" in die Konsole jedesmal, wenn die WKWebView geladen hat die Seite. Dies war excactly das, was ich suchte, also nochmal ein großes Dankeschön an Paulvs!
auch könnte es sein, leitet außerdem muss eine weitere Behandlung
InformationsquelleAutor Stef
Objective-C
Swift 4.2
InformationsquelleAutor Sunil Targe