2015-09-07 2 views
0

Я хочу изменить свой код, чтобы открыть внешние ссылки в Safari вместо браузера приложения в приложении. Файлы html загружаются из внутреннего пути, поэтому я не знаю, как заставить приложение понять, что все внешние ссылки должны быть открыты в сафари.Открытая внешняя ссылка от UIWebView в Safari

Это мой ViewController.m

#import "ViewController.h" 

@interface ViewController() 

@end 

@implementation ViewController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    NSString *fullURL = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]; 
    NSURL *url = [NSURL fileURLWithPath:fullURL]; 
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 
    [_viewWeb loadRequest:requestObj]; 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

@end 

Как я должен изменить его? Спасибо!

+3

возможно дубликат [Как запустить сафари и открыть URL из IOS приложения] (http://stackoverflow.com/questions/12416469/how-to-launch-safari-and-open-url-from- ios-app) –

ответ

1

Вам необходимо обработать это в методе делегата UIWebView и проверить с помощью UIWebViewNavigationType.

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

     if(navigationType == UIWebViewNavigationTypeLinkClicked){ 

      [MAIN_APPLICATION_DELEGATE openURL:request.URL]; 
    } 
} 
+1

Хороший ответ. :-) –

Смежные вопросы