获取不在文档目录中的PDF的URL - UIDocumentInteractionController

时间:2016-08-20 16:20:11

标签: ios objective-c pdf uiwebview

我每次都会从已保存的核心数据动态生成PDF,而不是以NSData self.pdfData的形式存储在文档目录中,而是以UIWebView呈现。我没有使用UIActivityController来共享PDF,而是希望使用UIDocumentInteractionController来获得全方位的共享选项。问题是这似乎只适用于文档目录中保存的PDF。

NSURL *PDFUrl = [[NSBundle mainBundle] URLForResource:@"sample" withExtension:@"pdf"]; 

我宁愿不把它保存到文件目录然后删除它,我希望有更优雅的东西。我尝试使用UIWebview直接从PDF的self.webView.request.mainDocumentURL获取网址,但这会返回about:blank

NSURL *PDFUrl = [[NSBundle mainBundle] URLForResource:@"sample" withExtension:@"pdf"]; <----- 

    if (PDFUrl) {
        DebugLog(@"Loading document");

        self.documentController = [UIDocumentInteractionController interactionControllerWithURL:PDFUrl];
        [self.documentController setDelegate:self];
        [self.documentController presentPreviewAnimated:YES];
    }

1 个答案:

答案 0 :(得分:1)

UIDocumentInteractionController仅适用于本地文件系统上的文件。这意味着您必须先将PDF保存到文件中,然后才能使用UIDocumentInteractionController

将PDF数据写入缓存文件夹(NSCachesDirectory)中的文件,获取其文件URL,使用UIDocumentInteractionController,然后在完成时删除该文件。

或使用UIActivityViewController并传递PDF的NSData作为活动项目。