2013-03-21 2 views
0

앱을 실행하면 먼저로드 된 다음 사파리로 웹 페이지를로드합니다. UIWebView에서 페이지로드를 수행하고 webView의 외부 링크를 사파리에서 열려면 어떻게해야합니까?Safari의 WebView 링크 열기

답변

0

첫 페이지 앱에 UIWebView 대신 사파리에로드되는 이유는이 코드 라인

#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]; 
} 

@end - 여기

는 webviewcontroller.m의 코드의 일부입니다 :

[[UIApplication sharedApplication] openURL:url]; 

viewDidLoad 방법에서이 줄을 제거하십시오.

Safari 앱에서 webView로드에 링크를 만들려면 먼저 메서드 내에서 webView.delegate = self; 인 webView 대리자로보기 컨트롤러를 설정합니다.

는 그런 다음 viewController에 다음 코드를 추가합니다 :이 방법은 webView가 요청을로드 시작하려고 할 때마다 호출되는 것입니다

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

    if (navigationType == UIWebViewNavigationTypeLinkClicked) 
    { 
     [[UIApplication sharedApplication] openURL:request.URL]; 
     return NO; 
    } 
    return YES; 
} 

. 그것은 요청이 사용자의 클릭에 의해 시작되었는지 확인하는 것입니다. 이 경우 Safari가 열리고 요청이로드됩니다. 클릭에 의해 시작되지 않은 다른 요청은 시작 페이지에 대한 요청과 같이 애플리케이션 내에로드됩니다.

관련 문제