Я уже пробовал получить текущий 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
здесь код, который я использую, чтобы захватить URL-адрес каждый раз, когда вы переходите к другой ссылке в веб-просмотре:
- (void)webViewDidFinishLoad:(UIWebView *)aWebView
{
self.url = aWebView.request.mainDocumentURL;
}
Я тоже обнаружил, что утвержденный ответ выше был ненадежным. Но с небольшой модификацией он работает каждый раз:
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;
Оба возвращают одну и ту же строку!
здесь код, который я использую:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[[[webView request] URL] absoluteString]]];
Я использую событие shouldStartLoadWithRequest
(UIWebViewDelegate) для обнаружения обновлений URL-адресов. request.mainDocumentURL.absoluteString
предоставит вам основной URL-адрес веб-страницы (обычно это то, что вы хотите), в то время как request.URL.absoluteString
будет включать в себя CSS и JavaScript.
реализовать метод делегирования,
- (BOOL)webView:(UIWebView *)webview shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString *URL = request.URL.absoluteString; NSLog(@"%@",URL);
}
URL - это то, что вам нужно.
Это всегда срабатывает..
NSString* url= [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
Поскольку UIWebView устарел, для WKWebview для получения текущего URL-адреса очень просто.
webView.url
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;
}