如何在iOS中将UIDocument用于远程文档?

ChaithraVeeresh

我想将pdf文件显示为预览,并在我的应用程序中显示PDF文件,但是我要使用的pdf是从URL获取并在不使用Web视图的情况下在我的文档中显示那些pdf文件,但我只想在UIDocumentation中显示。但是如果我从URL使用过,应用程序崩溃了吗?如何解决这个问题呢,?

NSURL *URL =  [NSURL URLWithString:@"http://golearning.blinkweb.com/uploads.00612104/00388749.pdf"];
if(URL)
{
    self.documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:URL];
    self.documentInteractionController.delegate = self;
    [self.documentInteractionController presentPreviewAnimated:YES];
}
迪齐特

答案确实在于Chaithra的评论:

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

要解决此问题,您需要下载PDF文件,为其获取本地URL,然后将其传递到UIDocumentInteractionController使用AFNetworking作为基准,以下对我有用:

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSProgress *progress = nil;
NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:&progress destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
  NSURL *documentsDirectory = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory
                                                                     inDomain:NSUserDomainMask
                                                            appropriateForURL:nil
                                                                       create:NO error:nil];
  return [documentsDirectory URLByAppendingPathComponent:[response suggestedFilename]];
} completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
  [self displayDocument:filePath];
}];


[downloadTask resume];

我的displayDocument:方法如下所示:

- (void)displayDocument:(NSURL*)document {
  UIDocumentInteractionController *documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:document];
  documentInteractionController.delegate = self;
  [documentInteractionController presentPreviewAnimated:YES];
}

以及以下委托方法:

- (UIViewController*)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller {
  return self;
}

由于AFNetworking上面示例中使用的大多数类仍然是标准的,因此不使用该代码将大体上相似。我碰巧在这种情况下使用AFNetworking来简化一些设置,并自动使用它提供的类别UIProgress来为我更新进度条。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在DocuSign API中将服务器模板应用于信封文档?

来自分类Dev

如何在iCloud中检查UIDocument

来自分类Dev

如何在Cordova中将单个图像用于ios启动画面

来自分类Dev

如何在Highcharts中将图像用于图表

来自分类Dev

如何在Flink中将ListState用于BroadcastProcessFunction

来自分类Dev

如何在PostgreSQL中将Group By用于范围?

来自分类Dev

如何在Java中将远程文件上传到POST URL?

来自分类Dev

如何在Mongoose中将_id设置为db文档?

来自分类Dev

如何在Mule ESB中将json-to-json文档转换

来自分类Dev

如何在Apache Tika中将Word文档转换为Json

来自分类Dev

如何在MongoDB中将文档列表简化为值列表

来自分类Dev

如何在Mongodb中将文档与对象属性的值匹配

来自分类Dev

如何在C#中将文本从RTF插入Word文档

来自分类Dev

如何在iOS中将UITextView插入UIAlertview

来自分类Dev

如何在iOS中将uiscrollview设为无限?

来自分类Dev

如何在iOS中将UITextView插入UIAlertview

来自分类Dev

如何在iOS 8中将AVSampleBufferDisplayLayer与GStreamer一起用于RTP H264流?

来自分类Dev

如何在文档中找到tostr可用于&str?

来自分类Dev

如何在MongoDB中将子文档添加到子文档数组

来自分类Dev

如何在symfony2中将mongo文档与子文档映射

来自分类Dev

如何在MongoDB中将子文档添加到子文档数组

来自分类Dev

如何在Scala中将功能应用于选项列表?

来自分类Dev

如何在Laravel中将MD5哈希用于密码?

来自分类Dev

如何在Java中将枚举用于数组下标

来自分类Dev

如何在Python中将self应用于方法参数

来自分类Dev

如何在OpenCV中将转换矩阵应用于点?

来自分类常见问题

如何在Javascript中将条件应用于forEach循环?

来自分类Dev

如何在MVC的Contoller中将ICollection用于SelectList?

来自分类Dev

如何在MySQL中将位掩码应用于整数?

Related 相关文章

  1. 1

    如何在DocuSign API中将服务器模板应用于信封文档?

  2. 2

    如何在iCloud中检查UIDocument

  3. 3

    如何在Cordova中将单个图像用于ios启动画面

  4. 4

    如何在Highcharts中将图像用于图表

  5. 5

    如何在Flink中将ListState用于BroadcastProcessFunction

  6. 6

    如何在PostgreSQL中将Group By用于范围?

  7. 7

    如何在Java中将远程文件上传到POST URL?

  8. 8

    如何在Mongoose中将_id设置为db文档?

  9. 9

    如何在Mule ESB中将json-to-json文档转换

  10. 10

    如何在Apache Tika中将Word文档转换为Json

  11. 11

    如何在MongoDB中将文档列表简化为值列表

  12. 12

    如何在Mongodb中将文档与对象属性的值匹配

  13. 13

    如何在C#中将文本从RTF插入Word文档

  14. 14

    如何在iOS中将UITextView插入UIAlertview

  15. 15

    如何在iOS中将uiscrollview设为无限?

  16. 16

    如何在iOS中将UITextView插入UIAlertview

  17. 17

    如何在iOS 8中将AVSampleBufferDisplayLayer与GStreamer一起用于RTP H264流?

  18. 18

    如何在文档中找到tostr可用于&str?

  19. 19

    如何在MongoDB中将子文档添加到子文档数组

  20. 20

    如何在symfony2中将mongo文档与子文档映射

  21. 21

    如何在MongoDB中将子文档添加到子文档数组

  22. 22

    如何在Scala中将功能应用于选项列表?

  23. 23

    如何在Laravel中将MD5哈希用于密码?

  24. 24

    如何在Java中将枚举用于数组下标

  25. 25

    如何在Python中将self应用于方法参数

  26. 26

    如何在OpenCV中将转换矩阵应用于点?

  27. 27

    如何在Javascript中将条件应用于forEach循环?

  28. 28

    如何在MVC的Contoller中将ICollection用于SelectList?

  29. 29

    如何在MySQL中将位掩码应用于整数?

热门标签

归档