Swift 3 - Vérifier si WKWebView chargement de la page
Ma question:
Comment puis-je vérifier si une page dans WKWebView entièrement chargé dans Xcode l'utilisation de Swift 3?
C'est mon problème:
Page 1:
À partir de cette page, je charge la Page web de 2
Page 2:
J'ai besoin d'obtenir des données html de la Page web 2, mais lorsque j'imprime les données HTML je obtenir des données HTML de la page web en 1, que je ne veux pas. Mais lorsque j'imprime des données HTML 2 secondes plus tard, elle me donne le droit de données HTML.
J'ai besoin de savoir si oui ou non une page dans WKWebView a la fin du chargement. Je peux voir dans la WebView il est chargé et aussi la progressbar est complètement chargé, mais lorsque j'imprime des données html de la page je obtenir des données html de la page précédente, ce qui n'est pas ce que je veux. Seulement si j'attends une seconde, il donne le droit de données, probablement à cause de la Page web 2 est chargé.
Alors, comment dois-je laisser Xcode pour imprimer html lors de la prochaine page est totalement chargée?
J'ai essayé plusieurs méthodes:
- détecter WKWebView la fin du chargement
- Appel de la fonction JavaScript à partir du code natif dans WKWebView
Peut-être que je peux utiliser:
si webView.isloading {}
mais je ne sais pas comment faire pour mettre en œuvre cette méthode, et si elle doit travailler.
J'ai essayé plusieurs méthodes de la Pile, mais ce ne sont pas de travail pour moi ou obsolètes.
Savez-vous une solution pour ce problème dans Swift 3?
Merci!
WKNavigationDelegate
, et aussi func webView(WKWebView, didFinish: WKNavigation!)
, ont-ils aidé?Salut, merci pour votre réponse. Il n'aide pas pour moi, mais peut-être que je ne sais pas comment faire pour mettre en œuvre ces méthodes de la bonne façon. Savez-vous comment mettre en œuvre cette méthode: developer.apple.com/documentation/webkit/wknavigationdelegate/... ?
Pour utiliser cette méthode, faites votre vue de la classe contrôleur conforme à la
WKNavigationDelegate
protocole, puis de mettre en œuvre cette méthode à l'intérieur de votre vue-contrôleur de classe. Il devrait y avoir des exemples en ligne comme ceci.Merci @paulvs ! Ne savais pas que c'était aussi simple que cela à mettre en œuvre une méthode à partir de la documentation d'apple!
OriginalL'auteur Stef | 2017-08-01
Vous devez vous connecter pour publier un commentaire.
Réponse (un Grand merci à @paulvs )
Pour vérifier si votre WKWebView a chargé de facilement mettre en œuvre la méthode suivante:
didFinish de navigation: WKNavigation!) {
print("loaded") }
Résultat: Il va imprimer "chargé" dans la console à chaque fois que l'WKWebView a fini de charger la page. C'était exactement ce que je cherchais, donc encore un grand merci à Paulvs!
aussi il y a des redirections qui a également besoin de traitement supplémentaire
OriginalL'auteur Stef
Objective-C
Swift 4.2
OriginalL'auteur Sunil Targe