0
앱을 실행하면 먼저로드 된 다음 사파리로 웹 페이지를로드합니다. UIWebView
에서 페이지로드를 수행하고 webView
의 외부 링크를 사파리에서 열려면 어떻게해야합니까?Safari의 WebView 링크 열기
앱을 실행하면 먼저로드 된 다음 사파리로 웹 페이지를로드합니다. UIWebView
에서 페이지로드를 수행하고 webView
의 외부 링크를 사파리에서 열려면 어떻게해야합니까?Safari의 WebView 링크 열기
첫 페이지 앱에 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가 열리고 요청이로드됩니다. 클릭에 의해 시작되지 않은 다른 요청은 시작 페이지에 대한 요청과 같이 애플리케이션 내에로드됩니다.