Я уже пытался получать текущий URL моего UIWebView
с: webview.request.URL
. К сожалению, он NSURL
был пуст. Что-то здесь не так? Я работаю с Xcode 3.2.2 beta 5.
Приведенный выше код должен выполняться в UIWebView
делегате didStartLoad
.
Я уже пытался получать текущий URL моего UIWebView
с: webview.request.URL
. К сожалению, он NSURL
был пуст. Что-то здесь не так? Я работаю с Xcode 3.2.2 beta 5.
Приведенный выше код должен выполняться в UIWebView
делегате didStartLoad
.
Ответы:
Вы можете попробовать это:
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];
window.location через JS у меня не работал надежно, но это сработало:
currentURL = currentWebView.request.URL.absoluteString;
Кредит: http://mohrt.blogspot.com/2008/10/getting-url-from-uiwebview.html
Mark Sands
вот код, который я использую для получения URL-адреса каждый раз, когда вы переходите по другой ссылке в веб-просмотре:
- (void)webViewDidFinishLoad:(UIWebView *)aWebView
{
self.url = aWebView.request.mainDocumentURL;
}
webView.request.URL.absoluteString
вернулсяnil
Я тоже обнаружил, что утвержденный ответ выше не был надежным. Но с небольшими изменениями, похоже, каждый раз работает:
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
Обратите внимание на добавление «.href» в Javascript, поскольку он скрыт в конце строки кода.
Это неверно и вернет ноль:
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];
Однако приведенный ниже код может получить URL-адрес, но этот URL-адрес может не быть текущим URL-адресом:
NSString *url = _webView.request.URL.absoluteString;
Правильный:
NSString *currentURL = [_webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
- (void)webViewDidFinishLoad:(UIWebView *)webView{
NSURL *currentURL = [[webView request] URL];
NSLog(@"%@",[currentURL description]);
}
Пробовал это для результатов поиска Google на iPhone:
NSString* currentURL = webView.request.URL.absoluteString;
NSString* mainDocumentURL = webView.request.mainDocumentURL.absoluteString;
Оба возвращают одну и ту же строку!
Я использую shouldStartLoadWithRequest
событие (UIWebViewDelegate), чтобы отслеживать обновления URL. request.mainDocumentURL.absoluteString
предоставит вам URL-адрес основной веб-страницы (обычно это то, что вы хотите), а также request.URL.absoluteString
будет включать CSS и JavaScript.
IN Swift попробуйте это,
func webViewDidFinishLoad(webView: UIWebView){
println(WebView.request?.mainDocumentURL)
}
Чтобы получить текущий URL-адрес WKWebView и UIWebview
Вот код.
if (self.wkWebView) {
NSString *URL = self.wkWebView.title;
}else if(self.uiWebView) {
NSString *URL = self.uiWebView.request.title;
}