I already tried getting the current URL of my UIWebView
with: webview.request.URL
.
Unfortunately the NSURL
was empty. Anything wrong h
Tried this for google search results on iPhone:
NSString* currentURL = webView.request.URL.absoluteString;
NSString* mainDocumentURL = webView.request.mainDocumentURL.absoluteString;
Both return the same string!
This is not correct, and will return a nil:
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];
However, the code below can get a URL, but the url may not be the current URL:
NSString *url = _webView.request.URL.absoluteString;
The correct one is:
NSString *currentURL = [_webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
You could try this:
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];
implement delegate method,
- (BOOL)webView:(UIWebView *)webview shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString *URL = request.URL.absoluteString; NSLog(@"%@",URL);
}
URL is the what you exactly needed.
This always works . .
NSString* url= [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
I too found that the approved answer above was not reliable. But with a slight modification, it seems to work every time:
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
Note the addition of ".href" to the Javascript as this is hidden at the end of the line of code.