Iphone 远程pdf文件的UIDocumentInteractionController

Iphone 远程pdf文件的UIDocumentInteractionController,iphone,ios,Iphone,Ios,有人知道如何使用UIDocumentInteractionController“在iBooks中打开”远程pdf文件吗?我似乎无法绕过这个问题。我已经设法在QLPreviewController中打开了我的pdf,并获得了OptionsMenu,让我可以选择在iBooks中打开,但如果文件是远程的,我就不会打开它……当我使用本地文件时,它工作得很好 如果这是不可能的,有什么替代方案 提前感谢尽管UIDocumentInteractionController有一个方便的方法interactionC

有人知道如何使用UIDocumentInteractionController“在iBooks中打开”远程pdf文件吗?我似乎无法绕过这个问题。我已经设法在QLPreviewController中打开了我的pdf,并获得了OptionsMenu,让我可以选择在iBooks中打开,但如果文件是远程的,我就不会打开它……当我使用本地文件时,它工作得很好

如果这是不可能的,有什么替代方案


提前感谢

尽管
UIDocumentInteractionController
有一个方便的方法
interactionControllerForURL:
,但它要求参数是文件URL。因此,您可以在应用程序中下载PDF并使用
UIDocumentInteractionController
对象打开它,也可以使用
UIWebView
对象打开远程PDF。将URL传递到web视图,它们就会正常打开。

广告中提到,您必须为UIDOcumentInteractionController使用文件URL。首先下载文档。一个非常简单的方法是使用。以下是我如何使用AFNetworking下载文件:

- (BOOL)webView:(UIWebView *)theWebView shouldStartLoadWithRequest:(NSURLRequest *)req navigationType:(UIWebViewNavigationType)navigationType {
self.title = req.URL.description;

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];

NSURL *URL = req.URL;
NSURLRequest *request = [NSURLRequest requestWithURL:URL];

NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
    NSURL *documentsDirectoryPath = [NSURL fileURLWithPath:[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]];
    self.fileURLPath = [documentsDirectoryPath URLByAppendingPathComponent:[response suggestedFilename]];
    return self.fileURLPath;
} completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
    NSLog(@"File downloaded to: %@", filePath);
}];
[downloadTask resume];


return YES;
}

现在您已经有了fileURLPath,可以像这样创建UIDocumentInteractionController:

documentController = [UIDocumentInteractionController interactionControllerWithURL:self.fileURLPath];

感谢您的回答…在使用UIDocumentInteractionCntroller之前,您对我如何完成下载有何见解?我在我的应用程序中正在做同样的事情,我正在使用。请参阅“创建下载任务”部分。您可以获取文件url路径并在UIDocumentInteractionController中使用该路径。您确实意识到在这种情况下使用AFNetworking没有任何好处,并且您99%的代码都使用了NSURLSession内容……而不是AFNetworking。。。