iPhone - UIWebview - 获取点击链接的URL

时间:2011-01-13 11:09:02

标签: iphone url uiwebview

我正在创建一个具有文本字段&顶部的按钮和他们下面的Web视图。 当用户在文本字段中输入URL并单击“开始”按钮时,它将开始在webview中加载页面。 当用户点击某个链接时,我想在文本字段中显示页面的URL(正在加载)。 如何获取点击链接的URL。

还有一些网站会重定向到其他网站。所以我的问题是如何在文本字段中显示正在加载的页面的URL?

3 个答案:

答案 0 :(得分:44)

在UIWebViewDelegate类中实现它

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
    //CAPTURE USER LINK-CLICK.
      NSURL *url = [request URL];
      yourTextBox.text =   [url absoluteString];


      return YES;   
}

答案 1 :(得分:13)

如果您特别想要用户点击链接的网址,请以这种方式查找。

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    if (navigationType == UIWebViewNavigationTypeLinkClicked) {
        NSLog(@"link clicked = %@",request.mainDocumentURL);
    }
    return YES;
}

此外,如果您想要客户端通过点击链接或您特别要求从webView请求的任何请求的网址,请使用

NSLog(@"link clicked = %@",self.webView.request.mainDocumentURL);

如果您想要客户端请求的任何当前URL或您自动打开的页面请求它们,请使用。

NSLog(@"link clicked = %@",self.webView.request.URL);

这是我经过长时间搜索后发现的所有内容,可能会对某人有所帮助。

答案 2 :(得分:5)

为此目的有一个委托方法,像这样实现:

- (void)webViewDidStartLoad:(UIWebView *)webView {
    NSURL* url = [webView.request URL];
    urlTextField.text = [url absoluteString];
}