Я вже намагався отримувати поточний 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;
}