【发布时间】:2011-06-08 10:33:56
【问题描述】:
我正在创建一个应用程序,该应用程序在顶部有一个文本字段和转到按钮,在它们下方有一个 Web 视图。 当用户在文本字段中输入 URL 并单击“Go”按钮时,它将开始在 webview 中加载页面。 当用户单击某个链接时,我想在文本字段中显示页面的 URL(正在加载)。 如何获取点击链接的 URL。
还有一些网站会重定向到其他网站。所以我的问题是如何在文本字段中显示正在加载的页面的 URL?
【问题讨论】:
我正在创建一个应用程序,该应用程序在顶部有一个文本字段和转到按钮,在它们下方有一个 Web 视图。 当用户在文本字段中输入 URL 并单击“Go”按钮时,它将开始在 webview 中加载页面。 当用户单击某个链接时,我想在文本字段中显示页面的 URL(正在加载)。 如何获取点击链接的 URL。
还有一些网站会重定向到其他网站。所以我的问题是如何在文本字段中显示正在加载的页面的 URL?
【问题讨论】:
为此目的有一个委托方法,像这样实现它:
- (void)webViewDidStartLoad:(UIWebView *)webView {
NSURL* url = [webView.request URL];
urlTextField.text = [url absoluteString];
}
【讨论】:
在你的 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;
}
【讨论】:
如果你特别想要用户点击的链接的url,那么用这种方式找到它。
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
NSLog(@"link clicked = %@",request.mainDocumentURL);
}
return YES;
}
此外,如果您想要任何请求的 url,通过点击链接从客户端请求或您从 webView 明确请求,请使用
NSLog(@"link clicked = %@",self.webView.request.mainDocumentURL);
如果您想要从客户端请求的任何当前 url,或者它们是您自动打开的页面请求的,请使用。
NSLog(@"link clicked = %@",self.webView.request.URL);
这是我经过长时间搜索后找到的所有内容,可能会对某人有所帮助。
【讨论】: