how to open the url in safari not in webview

ios, objective-c, xcode

Solution

After reading the comments I think this is what you're looking for:

Implement this method:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;

from `UIWebViewDelegate` and depending on that request argument you should return `TRUE` or `FALSE`. If you don't want the web view to open it, you should call:

[[UIApplication sharedApplication] openURL:request.URL];

as others mentioned and return `FALSE`.

Hope this helps. Cheers!

EDIT: If the links are not recognized in your web view, try this:

[webView setDataDetectorTypes:UIDataDetectorTypeLink]

Problem

I want to open an url in safari, outisde the app and not in webview. I implemented the UIWebViewDelegate but I am still not able to open the url. Basically I am not able to click the url. Below is the code: ``` -(void)newView:(NSString *)title Description:(NSString *)desc URL:(NSString *)url{ webView =[[UIWebView alloc]initWithFrame:CGRectMake(15, 17, 190, 190)]; webView.backgroundColor=[UIColor clearColor]; webView.delegate=self; webView.opaque = NO; [webView loadHTMLString:[NSString stringWithFormat:@"<html><body p style='color:white' text=\"#FFFFFF\" face=\"Bookman Old Style, Book Antiqua, Garamond\" size=\"5\">%@ %@</body></html>", desc,url] baseURL:nil]; v = [[HUDView alloc] initWithFrame:CGRectMake(60, 70, 220, 220)]; cancelButton = [UIButton buttonWithType:UIButtonTypeCustom]; cancelButton.frame = CGRectMake(0, 0, 30, 30); [cancelButton setBackgroundImage:[UIImage imageNamed:@"closebox.png"] forState:UIControlStateNormal]; [cancelButton addTarget:self action:@selector(cancelButtonPressed) forControlEvents:UIControlEventTouchUpInside]; [v addSubview:cancelButton]; [v addSubview:webView]; [self.view addSubview:v]; } -(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType { if ( inType == UIWebViewNavigationTypeLinkClicked ) { [[UIApplication sharedApplication] openURL:[inRequest URL]]; return NO; } return YES; } ```

Original source

Related problems