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

Sat*_*yam 21 iphone url uiwebview

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

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

Mih*_*hta 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;   
}
Run Code Online (Sandbox Code Playgroud)

  • 当我在webview中加载youtube时,这不起作用...我想念的任何东西.请帮忙. (2认同)

iHu*_*ulk 12

如果您特别想要用户点击链接的网址,那么就可以通过这种方式找到它.

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

此外,如果您想要客户端请求的URL,无论是通过点击链接还是通过webView特别请求,请使用

NSLog(@"link clicked = %@",self.webView.request.mainDocumentURL);
Run Code Online (Sandbox Code Playgroud)

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

NSLog(@"link clicked = %@",self.webView.request.URL);
Run Code Online (Sandbox Code Playgroud)

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


Fel*_*lix 5

为此目的有一个委托方法,实现如下:

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