如何获得我在UIWebView上点击的网址?

时间:2014-12-02 11:06:29

标签: ios objective-c uiwebview

 NSString *testString =[NSString stringWithFormat:@" <a href = \\\\ \"www.google.com\">Google</a>"];
[webView loadHTMLString:testString baseURL:nil];

我想在

中单击此UIWebView内容时获取URL
-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType {

if ( inType == UIWebViewNavigationTypeLinkClicked ) {
    [[UIApplication sharedApplication] openURL:inRequest.mainDocumentURL];
    return NO;
}

return YES;

}

委托方法。 当我点击webview中的google超链接时,它会给出

  

网址:applewebdata://

请帮帮我。

4 个答案:

答案 0 :(得分:1)

如果您想在webview或webview的加载页面网址上获取点按的网址,那么您的问题就不是很清楚了,

  1. 如果你想获得webview加载页面网址,你可以使用NSURLRequestObject,比如

    NSString * url = [request URL];

  2. 如果您想获取点击的链接网址,则必须使用此java脚本

    NSString *url = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];

答案 1 :(得分:1)

你可以这样做

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    if ([request.URL.absoluteString rangeOfString:@"www.google.com"].location!=NSNotFound)
    {
        [[UIApplication sharedApplication]openURL:request.URL];
        return NO;
    }
 return YES;
}

答案 2 :(得分:1)

对于Swift:

每当你的网页被加载时你就可以使用它,在这种情况下我用它作为标签:

webUrlLabel.text = webView.request.URL.absoluteString

对于Objective-C:

NSString *currentPage = [NSString stringWithFormat:@"%@", webView.request.URL.absoluteString];

webUrlLabel是UILabel

webView是我的UIWebView

答案 3 :(得分:0)

您已拥有NSURLRequest对象。从那里访问网址。

inRequest.URL

方式1:

NSString *currentURL = myWebView.request.URL.absoluteString;

方式2:

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


  return YES;   

}

如果有效,请告诉我。感谢