是否可以使用Quick Look Framework从URL链接查看PDF文件

时间:2016-01-21 17:17:00

标签: ios objective-c xcode quicklook

正如标题所说,我需要显示存储在远程服务器中的PDF文件,而无需使用URL链接在设备上下载。是否可以使用Quick Look框架来实现?

我在下面使用以下代码:

- (void)openDocument {
    QLPreviewController *docPreviewController = [[QLPreviewController alloc] init];
    [docPreviewController setDataSource:self];
    [docPreviewController setDelegate:self];
    [docPreviewController setCurrentPreviewItemIndex:sender.tag];
    [self.destinationViewController presentViewController:docPreviewController animated:true completion:nil];
}

- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller {
    return 1;
}

- (id<QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index {
    return [NSURL fileURLWithPath:@"http://www.domain.com/file.pdf"];
}

但是我在控制台中遇到了这个问题:

UIDocumentInteractionController: invalid scheme https.  Only the file scheme is supported.

2 个答案:

答案 0 :(得分:0)

否,当前的QLFramework不支持。 所有quicklook支持的项目都应符合“ QLPreviewItem”协议。 根据QL的文件

  

QLPreviewItem协议中的方法也被声明为NSURL类的类别。因此,您可以将NSURL对象直接用作预览项目,前提是您要使用这些项目的默认标题。

QLPreviewItem协议包含PreviewItemURL属性,这是一个URL类型。但是该文件直接告诉我们:

  

此属性的值必须是文件类型的URL。

换句话说,它不接受其他网址架构。

答案 1 :(得分:-1)

我已使用UIDocumentInteractionController

解决了问题
UIDocumentInteractionController *viewer = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:path]];
viewer.delegate = self;
[viewer presentPreviewAnimated:YES];