iPhone - UIWebview - Get the URL of the link clicked
Implement this in your UIWebViewDelegate class
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
//CAPTURE USER LINK-CLICK.
NSURL *url = [request URL];
yourTextBox.text = [url absoluteString];
return YES;
}
If you specifically want the url of links clicked by user then find it in this way.
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
NSLog(@"link clicked = %@",request.mainDocumentURL);
}
return YES;
}
Also if you want the url of any request, requested from client side either by taping on a link or specifically requested from webView by you, use
NSLog(@"link clicked = %@",self.webView.request.mainDocumentURL);
and if you want the any current url requested from client side either by you or they are requested by the page you opened automatically, use.
NSLog(@"link clicked = %@",self.webView.request.URL);
This is all that I have found after a long search, may be it will help someone.
There's a delegate method for that purpose, implement it like this:
- (void)webViewDidStartLoad:(UIWebView *)webView {
NSURL* url = [webView.request URL];
urlTextField.text = [url absoluteString];
}