Получить текущий URL-адрес UIWebView

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

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

Ответ 1

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

Вы можете попробовать следующее:

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

Ответ 3

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

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

Ответ 4

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

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

Обратите внимание на добавление ".href" к Javascript, поскольку это скрыто в конце строки кода.

Ответ 5

Это неверно и вернет нуль:

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

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

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

Правильный вариант:

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

Ответ 6

- (void)webViewDidFinishLoad:(UIWebView *)webView{
     NSURL *currentURL = [[webView request] URL];
     NSLog(@"%@",[currentURL description]);

}

Ответ 7

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

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

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

Ответ 8

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

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[[[webView request] URL] absoluteString]]];

Ответ 9

Я использую событие shouldStartLoadWithRequest (UIWebViewDelegate) для обнаружения обновлений URL-адресов. request.mainDocumentURL.absoluteString предоставит вам основной URL-адрес веб-страницы (обычно это то, что вы хотите), в то время как request.URL.absoluteString будет включать в себя CSS и JavaScript.

Ответ 10

реализовать метод делегирования,

- (BOOL)webView:(UIWebView *)webview shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSString  *URL = request.URL.absoluteString;    NSLog(@"%@",URL);
}

URL - это то, что вам нужно.

Ответ 11

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

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

Ответ 12

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

webView.url

Ответ 13

IN Swift попробуйте это,

func webViewDidFinishLoad(webView: UIWebView){
    println(WebView.request?.mainDocumentURL)
}

Ответ 14

Чтобы получить текущий URL-адрес WKWebView и UIWebview

Вот код.

if (self.wkWebView) {
   NSString  *URL = self.wkWebView.title;
}else if(self.uiWebView) {
   NSString *URL = self.uiWebView.request.title;
}