Obtenez l'URL complète en cours pour WKWebView
Est-il un moyen pour obtenir l'adresse URL COMPLÈTE chargé par un WKWebView
pour chaque demande?
webView:didFinishNavigation:
Fonctionne uniquement pour les mainFrame
navigations et ne pas fournir une URL en paramètre de la requête.
Comment puis-je obtenir l'URL COMPLÈTE, tout comme dans la UIWebViewDelegate
's
webViewDidFinishLoad:webView
...qui est exécutée après tout chargement termine et vous pouvez obtenir le montant total de la demande l'URL de la webView
paramètre.
C'est bien que WKWebView
's URL
propriété sauve le travail qui doit être fait pour extraire une INTERFACE utilisateur conviviale de l'URL de base, mais c'est une perte énorme, nous ne pouvons pas obtenir le plein!
J'ai essayé d'utiliser
webView:decidePolicyForNavigationAction:decisionHandler:
...mais il produit des résultats différents pour les Url par rapport à une UIWebView
's request
des biens détient après avoir terminé le chargement d'une page.
source d'informationauteur i-konov
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, je pense que vous confondez
NSURL
etNSURLRequest
. La première est facilement accessible viawebView.URL
et il ne fait de vous donner la URL complète de tout ce qui était chargé. En supposant que où vous dites URL vous direNSURL
.Si ce n'est pas ce que vous vouliez, par exemple, si vous voulais voir la chaîne de redirection ou les en-têtes de réponse, alors j'ai peur que la réponse est que vous ne pouvez pas obtenir à tht des informations spécifiques via le
WKWebView
.Vous aurez à revenir à des
UIWebView
où vous pouvez intercepter les demandes relativement facilement et de voir le montant total de la demande/réponse.Vous pouvez obtenir l'URL d'une nouvelle Page web demandée par "navigationAction.demande.URL" dans decidePolicyForNavigationAction méthode du délégué.
C'est Yuichi Kato répondre pour Swift 4. Il récupère l'adresse URL complète de la
request
propriété de l'action de navigation dans lewebView(_:decidePolicyFor:decisionHandler:)
méthode deWKNavigationDelegate
.N'oubliez pas de confirmer votre classe à
WKNavigationDelegate
et de définir votre vue web du délégué en conséquence: