111 votes

Obtenir l'URL actuelle de UIWebview

J'ai déjà essayé d'obtenir l'URL actuelle de mon UIWebView avec: webview.request.URL . Malheureusement, le NSURL était vide. Quelque chose ne va pas ici? Je travaille avec Xcode 3.2.2 beta 5.

Le code ci-dessus doit être exécuté dans le délégué UIWebViews didStartLoad ...

Merci beaucoup!

317voto

Matt Andersen Points 2316

window.location via JS n'a pas fonctionné de manière fiable pour moi, mais cela a fonctionné:

 currentURL = currentWebView.request.URL.absoluteString;
 

Crédit: http://mohrt.blogspot.com/2008/10/getting-url-from-uiwebview.html

55voto

Mark Sands Points 909

voici le code que j'utilise pour saisir l'URL chaque fois que vous accédez à un lien différent dans la vue Web:

 - (void)webViewDidFinishLoad:(UIWebView *)aWebView
{
  self.url = aWebView.request.mainDocumentURL;
}
 

45voto

Rengers Points 4701

Matt sa version est beaucoup plus propre. Je recommande à tout le monde d'utiliser celui-là à la place de celui-ci

Vous pouvez essayer ceci:

 NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];
 

36voto

SarahR Points 341

Moi aussi, j'ai trouvé que la réponse approuvée ci-dessus n'était pas fiable. Mais avec une légère modification, il semble fonctionner à chaque fois:

 NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
 

Notez l'ajout de ".href" au Javascript car celui-ci est caché à la fin de la ligne de code.

18voto

D.D. Points 123

Ce n'est pas correct, et retournera un zéro:

 NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];
 

Cependant, le code ci-dessous peut obtenir une URL, mais l'URL peut ne pas être l'URL actuelle:

 NSString *url = _webView.request.URL.absoluteString;
 

Le bon est:

 NSString *currentURL = [_webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X