【发布时间】:2013-12-02 10:26:51
【问题描述】:
我需要我的应用程序识别.PDF 扩展,并在Safari 中打开它而不是我的UIWebView,但是如果我调用诸如http://google.com 之类的域,我希望它在UIWebView 中打开它.
请指教
【问题讨论】:
-
感谢 Mutawe 的翻译。英语不是我的第一个(或其他)lenguaje。
标签: ios iphone xcode pdf uiwebview
我需要我的应用程序识别.PDF 扩展,并在Safari 中打开它而不是我的UIWebView,但是如果我调用诸如http://google.com 之类的域,我希望它在UIWebView 中打开它.
请指教
【问题讨论】:
标签: ios iphone xcode pdf uiwebview
您也可以检查 MIME 类型,以获得稍长的旅程:
@property (nonatomic, strong) NSString *mime;
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
mime = [response MIMEType];
}
- (BOOL)isDisplayingPDF {
NSString *extension = [[mime substringFromIndex:([mime length] - 3)] lowercaseString];
return ([[[self.webView.request.URL pathExtension] lowercaseString] isEqualToString:@"pdf"] || [extension isEqualToString:@"pdf"]);
}
您应该使用以下打开 URL 文件 (.pdf):
NSURL *url = [NSURL URLWithString:@"http://www.stackoverflow.com/dd.pdf"];
if (![[UIApplication sharedApplication] openURL:url])
NSLog(@"%@%@",@"Failed to open url:",[url description]);
【讨论】:
试试这个,它会在不使用 webview 的情况下在 safari 中打开
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
if (url != nil && [url isFileURL]) {
if ([[url pathExtension] isEqualToString:@"pdf"]) {
NSLog(@"URL:%@", [url absoluteString]);
}
}
return YES;
}
- (void)viewDidLoad
{
[super viewDidLoad];
NSURL *url = [NSURL URLWithString:@"your pdf url"];
if (![[UIApplication sharedApplication] openURL:url])
NSLog(@"%@%@",@" open url:",[url description]);
}
【讨论】: