在Safari中打开WebView链接

运行应用程序时,它首先加载,然后在Safari浏览器中加载网页。 我将如何在UIWebView加载页面,并在Safari中打开webView的外部链接?

这里是一些webviewcontroller.m的代码 –

 #import "WebViewController.h" @implementation WebViewController @synthesize webView; - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { // Initialization code } return self; } /* If you need to do additional setup after loading the view, override viewDidLoad. */ - (void)viewDidLoad { NSString *urlAddress = @"url link goes here"; //Create a URL object. NSURL *url = [NSURL URLWithString:urlAddress]; [[UIApplication sharedApplication] openURL:url]; //URL Requst Object NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; //Load the request in the UIWebView. [webView loadRequest:requestObj]; } 

@结束

第一页在Safari中加载而不是在您的应用程序中的UIWebView的原因是这行代码:

 [[UIApplication sharedApplication] openURL:url]; 

viewDidLoad方法中删除这一行。

为了在Safari应用程序中加载webView加载内的链接,首先将您的视图控制器设置为webView.delegate = self;viewDidLoad方法里面。

然后将下面的代码添加到您的viewController

 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { if (navigationType == UIWebViewNavigationTypeLinkClicked) { [[UIApplication sharedApplication] openURL:request.URL]; return NO; } return YES; } 

每次webView即将开始加载请求时,都会调用此方法。 它所做的是检查请求是否由用户点击启动。 如果是,它会打开Safari并在那里加载请求。 其他任何不是通过点击启动的请求都会被加载到您的应用程序中,例如请求启动页面。