Получить текущий URL UIWebView - PullRequest
110 голосов
/ 22 марта 2010

Я уже пытался получить текущий URL моего UIWebView с помощью: webview.request.URL. К сожалению, NSURL был пуст. Здесь что-то не так? Я работаю с Xcode 3.2.2 beta 5.

Код выше должен выполняться в UIWebView делегате didStartLoad.

Ответы [ 14 ]

317 голосов
/ 07 сентября 2010

window.location через JS не работал для меня надежно, но это сделало:

currentURL = currentWebView.request.URL.absoluteString;

Кредит: http://mohrt.blogspot.com/2008/10/getting-url-from-uiwebview.html

55 голосов
/ 03 декабря 2010

вот код, который я использую для получения URL-адреса каждый раз, когда вы переходите к другой ссылке в веб-просмотре:

- (void)webViewDidFinishLoad:(UIWebView *)aWebView
{
  self.url = aWebView.request.mainDocumentURL;
}
45 голосов
/ 22 марта 2010

версия Мэтта намного чище. Я рекомендую всем использовать , что один вместо этого

Вы можете попробовать это:

NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];
36 голосов
/ 06 декабря 2011

Я также обнаружил, что утвержденный ответ выше не является надежным. Но с небольшой модификацией, похоже, работает каждый раз:

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

Обратите внимание на добавление «.href» в Javascript, так как он скрыт в конце строки кода.

18 голосов
/ 17 февраля 2014

Это не правильно и вернет ноль:

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

Однако приведенный ниже код может получить URL-адрес, но URL-адрес может не совпадать с текущим:

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

Правильный:

NSString *currentURL = [_webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
8 голосов
/ 09 октября 2013
- (void)webViewDidFinishLoad:(UIWebView *)webView{
     NSURL *currentURL = [[webView request] URL];
     NSLog(@"%@",[currentURL description]);

}
4 голосов
/ 20 апреля 2012

Пробовал это для результатов поиска Google на iPhone:

 NSString* currentURL = webView.request.URL.absoluteString;
 NSString* mainDocumentURL = webView.request.mainDocumentURL.absoluteString;

Оба возвращают одну и ту же строку!

3 голосов
/ 18 июня 2011

вот код, который я использую:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[[[webView request] URL] absoluteString]]];
2 голосов
/ 26 апреля 2017

Поскольку UIWebView устарел, для WKWebview получить текущий URL очень просто.

webView.url
2 голосов
/ 16 апреля 2014

Это всегда работает..

NSString* url= [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...