iOS如何阅览和选择应用打开网络下载的pdf、word、jpg、MP4等文件

通过创建UIDocumentInteractionController来实现这一功能,如下栗子:

#pragma mark - 展示文件

- (void)showDownloadFile:(NSString *)fileName{

  // 从沙盒中获取(以下路径是我从网络下载文件存放的路径)

  NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];

  NSString *fileDir = [NSStringstringWithFormat:@"%@/Download/File", docPath];

  NSString *filePath = [fileDir stringByAppendingPathComponent:@"fileName"]; //fileName如:text.jpg、text.pptx、text.mp4等

  UIDocumentInteractionController * docC = [self setupControllerWithURL:[NSURLfileURLWithPath:filePath]

                                                          usingDelegate:self];

//        [docC presentOpenInMenuFromRect:self.view.bounds inView:self.view animated:YES]; //这一方式没有阅览功能

    [docC presentPreviewAnimated:YES];

}

#pragma mark - 设置docController

- (UIDocumentInteractionController *)setupControllerWithURL: (NSURL *) fileURL

                                               usingDelegate: (id <UIDocumentInteractionControllerDelegate>) interactionDelegate {

     UIDocumentInteractionController *interactionController = [UIDocumentInteractionControllerinteractionControllerWithURL: fileURL];

    interactionController.delegate = interactionDelegate; // 不要忘记遵守UIDocumentInteractionControllerDelegate协议

    return interactionController;

}

#pragma mark - 预览窗口的父窗口,不填写则无展示效果

- (UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller{

    return self;  

}

#pragma mark - 代理方法

- (UIView *)documentInteractionControllerViewForPreview:(UIDocumentInteractionController *)controller{

    return self.view;

}

- (CGRect)documentInteractionControllerRectForPreview:(UIDocumentInteractionController *)controller{

    return self.view.frame

}

 提供几个下载地址:

http://pic6.nipic.com/20100330/4592428_113348097000_2.jpg

http://lcell.bnu.edu.cn/upImages/resource/20110507140606.pptx

http://120.25.226.186:32812/resources/videos/minion_01.mp4

随笔随记,以免忘记

时间: 2024-09-27 16:57:20

iOS如何阅览和选择应用打开网络下载的pdf、word、jpg、MP4等文件的相关文章

Excel2013无法打开网络下载或程序导出文件

一,问题描述 今天我在使用我的 Java Web 程序导出一个Excel后,然后用我本地的 Microsoft Office(版本2013)打开时,提示如下: 一开始我还傻不拉几的以为真的是磁盘空间不足,于是跑到保存的位置去删除了一些东西,结果发现不是这样的,是我保存的位置,在 Excel 里面没有把路径设置为可信任的路径 二,解决方案 打开 Excel XXX(版本按你自己的选择),这里我以 2013 为例 选择个人 选项 信任中心 信任设置 添加你要信任的位置,一般为你下载后保存的位置

打开网络适配的两种方法

打开网络适配有两种方法 第一种是在Info.plist文件里添加XML代码 具体步骤:右击Info.plist文件 选择Open As里面的Source Code 然后在文件底部插入下面代码 [html] view plain copy <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> 第二种

IOS开发调用系统相机和打开闪光灯

IOS开发调用系统相机和打开闪光灯      今天给大家分享一下如何调用iphone的拍照功能和打开闪光灯,有些代码我也不太理解,很多是在网上借鉴其他人的.IOS有两种的拍照和视频的方 式:1.直接使用UIImagePickerController,这个类提供了一个简单便捷的拍照与选择图片库里图片的功能.2.另一种是通过 AVFoundation.framework框架完全自定义拍照的界面和选择图片库界面.我只做了第一种,就先给大家介绍第一种做法: 一.首先调用接口前,我们需要先判断当前设备是否

iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?

Apple官方的文档为生成一个UIImage对象提供了两种方法: 1. imageNamed,其参数为图片的名字: 2. imageWithContentsOfFile,其参数也是图片文件的路径. 那么两种有什么区别吗? 肯定是有的.根据Apple的官方文档: imageNamed: 这个方法用一个指定的名字在系统缓存中查找并返回一个图片对象如果它存在的话.如果缓存中没有找到相应的图片,这个方法从指定的文档中加载然后缓存并返回这个对象.因此imageNamed的优点是当加载时会缓存图片.所以当图

作为一个iOS攻城狮不得不了解的网络知识

1.前言: 最为一个iOS开发工程师,不论实在面试时候还是在与服务器人员讨论网络请求相关知识时候都需要具备基础的常识,比如说:OSI.HTTP.HTTP和HTTPS的区别,以及2016年6月1日起苹果APP审核新增内容的IPV6相关知识.在此小编也几乎是从零学起了 2.什么是OSI 我们所说的OSI全名是:开放式系统互联通信参考模型(Open System Interconnection Reference Model),简称OSI模型:首先要了解的是它是一种概念模型,由国际标准化组织(ISO)

windows快捷键之打开网络连接

在Win 7"开始"->"运行"对话框输入"cmd"如下图红框所示,再点击"确定"按钮. 步骤阅读   在出现的CMD命令行中执行"ncpa.cpl"命令. 步骤阅读   执行完上面的操作后就能进入到Win 7的"网络连接". 步骤阅读 END windows快捷键之打开网络连接

Android 打开网络连接

使用url打开网络连接 String urlString = "http://"+et_url.getText()+""; if(urlString.length()>0){ try { String line = ""; URL url = new URL(urlString); URLConnection urlConnection = url.openConnection(); BufferedReader bufferedReade

微信中打开链接不直接显示目标页面,必须手动选择浏览器打开?VJump告诉你答案。

前言    在使用微信打开别人分享的链接或二维码时经常不能直接直接跳转到目标页面也不能直接下载,而是需要点击右上方竖着的"三点"图标,在弹出的菜单中选择浏览器打开,如图所示:     这种情况的原因就是微信只允许了部分合作外链可以直接在其内置浏览器中打开,而其他的外链只能通过用户手机中的其他浏览器来打开,所以就有了要手动选择浏览器的情况.解决办法呢,其实就是添加一个JS防封和外跳机制.也有添加一个遮罩层来解决.下面我详细讲解下. 解决方案:    一:使用引导页遮罩层引导用户使用外部浏

ios开发中如何选择图片的加载方式

第一种方法:imageNamed:   (经常会重复使用的图标 用这个,图片不大的) 为什么有两种方法完成同样的事情呢?imageNamed的优点在于可以缓存已经加载的图片. 这种方法会首先在系统缓存中根据指定的名字寻找图片,如果找到了就返回.如果没有在缓存中找到图片,该方法会从指定的文件中加载图片数据,并将其缓存起来,然后再把结果返回.对于同一个图像,系统只会把它Cache到内存一次,这对于图像的重复利用是非常有优势的.例如:你需要在 一个TableView里重复加载同样一个图标,那么用ima