Aby rozwinąć na co Randy powiedział, to co używam w mojej aplikacji, aby każdy http: //, https: //, a mailto: // URL otwarte w zewnętrznej aplikacji Safari lub Mail:
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
{
NSURL *requestURL =[ [ request URL ] retain ];
if (([ [ requestURL scheme ] isEqualToString: @"http" ] || [ [ requestURL scheme ] isEqualToString: @"https" ] || [ [ requestURL scheme ] isEqualToString: @"mailto" ])
&& (navigationType == UIWebViewNavigationTypeLinkClicked)) {
return ![ [ UIApplication sharedApplication ] openURL: [ requestURL autorelease ] ];
}
[ requestURL release ];
return YES;
}
Jak mówi Randy, będziesz chciał zaimplementować to w dowolnej klasie, którą określisz jako delegata UIWebView. Aby tylko niektóre adresy URL uruchamiały Safari, możesz zmienić ich schemat z http: // na safari: // lub coś podobnego, i tylko wykopać te adresy URL do systemu (po zamianie niestandardowego schematu URL na http: //) .
Robię to w ramach mojej wewnętrznej dokumentacji pomocy, która jest HTML wyświetlana w interfejsie UIWebView, więc nie napotykam problemów w procesie recenzji, mając wbudowaną w moją aplikację przeglądarkę internetową ogólnego przeznaczenia.
[http://stackoverflow.com/questions/4452719/jak-do-i-open-linki-in-safari-zamiast-of-UIWebView/12103579 # 12103579] [1] [1]: http: // stackoverflow.com/questions/4452719/how-do-i-open-links-in-safari-zamiast-uiwebview/12103579 # 12103579 –