У меня есть небольшое приложение для iOS , которое использует WebView .Мне нужны ссылки, которые содержат target = "_blank" , чтобы открыть в Safari
Я нашел решение.Но это не работает для меня.
https://stackoverflow.com/a/15048074/4489534
Все ссылки теперь открываются в Safari, и все ссылки, содержащие "? OpenInSafari = true" тоже.Но внешние (загружаемые) файлы, такие как PDF , открываются в WebView .
Я не могу понять, почему условие не работает
- (BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest: (NSURLRequest *)request navigationType: (UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
NSURL *url = [request URL];
NSString *string = [url query];
if ([string rangeOfString: @"openInSafari=true"].location != NSNotFound){
[[UIApplication sharedApplication] openURL: url];
NSLog(@"Open in Safari");
return NO;
}
}
NSLog(@"Open in WebView");
return YES;
}
EDITED
Когда я нажимаю на ссылку, содержащую "? OpenInSafari = true" , я получаю "Открыть в Safari openInSafari = true"
Когда я нажимаю на обычную ссылку, я получаю "Open in Safari (null)"
Когда я нажимаю ссылку для скачивания в файле PDF, я получаю "Открыть в WebView product_id = 50 & download_id = 21 "
Когда я нажимаю, чтобы указать прямую ссылку на файл PDF, я получаю " Открыть в Safari (null) "