我有一个使用 WebView 的 iOS 的小应用。我需要包含 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”
当我点击正常链接时,我得到“在Safari中打开(null)”
当我点击可下载链接到PDF文件时,我得到“在WebView中打开product_id = 50& download_id = 21”
当我点击直接链接到PDF文件时,我得到“在Safari中打开(null)”