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 UIWebView
delegate didStartLoad
.
Vous pouvez essayer ceci:
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];
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
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;
}
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.
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"];
- (void)webViewDidFinishLoad:(UIWebView *)webView{
NSURL *currentURL = [[webView request] URL];
NSLog(@"%@",[currentURL description]);
}
J'ai essayé ceci pour les résultats de recherche Google sur iPhone:
NSString* currentURL = webView.request.URL.absoluteString;
NSString* mainDocumentURL = webView.request.mainDocumentURL.absoluteString;
Les deux retournent la même chaîne!
voici le code que j'utilise:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[[[webView request] URL] absoluteString]]];
J'utilise l'événement shouldStartLoadWithRequest
(UIWebViewDelegate) pour récupérer les mises à jour d'URL. request.mainDocumentURL.absoluteString
vous obtiendrez l’URL de la page Web principale (qui est normalement ce que vous voulez), tandis que request.URL.absoluteString
comprendra CSS et JavaScript inclut.
implémenter la méthode du délégué,
- (BOOL)webView:(UIWebView *)webview shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString *URL = request.URL.absoluteString; NSLog(@"%@",URL);
}
L'URL est ce dont vous avez exactement besoin.
UIWebView étant obsolète, car WKWebview , obtenir l'URL actuelle est très simple.
webView.url
Cela fonctionne toujours. .
NSString* url= [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
IN Swift essayez ceci,
func webViewDidFinishLoad(webView: UIWebView){
println(WebView.request?.mainDocumentURL)
}
Pour obtenir l'URL actuelle de WKWebView et UIWebview
Voici le code.
if (self.wkWebView) {
NSString *URL = self.wkWebView.title;
}else if(self.uiWebView) {
NSString *URL = self.uiWebView.request.title;
}