Если все ссылки, которые вы хотите открыть в Safari, содержат общую строку, вы можете использовать следующий фрагмент кода.
- (BOOL)webView:(UIWebView *)theWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSURL *url = [request URL];
// Intercept the external http requests and forward to Safari.app
// Otherwise forward to the PhoneGap WebView
if ([[url scheme] isEqualToString:@"SCHEME"]) {
[[UIApplication sharedApplication] openURL:url];
return NO;
}
else {
return [ super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType ];
}
}
Этот код, помещенный в AppDelegate.m
, откроет все URL, которые используютуказанная СХЕМА в Safari.
Боюсь, это все, что я мог придумать.
Надеюсь, это поможет
ОБНОВЛЕНИЕ:
Коддолжен быть помещен в MainViewControler, по крайней мере для cordova 2.2.0.
Метод изначально прокомментирован.Мне пришлось использовать его для перенаправления ссылок на карты Google:
NSRange isGoogleMaps = [[url absoluteString] rangeOfString:@"maps.google.com" options:NSCaseInsensitiveSearch];
NSRange isGoogleTerms = [[url absoluteString] rangeOfString:@"terms_maps.html" options:NSCaseInsensitiveSearch];
if(isGoogleMaps.location != NSNotFound || isGoogleTerms.location != NSNotFound ) {
[[UIApplication sharedApplication] openURL:url];
return NO;
}
else
return [super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType];