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];
}