IOS下载查看PDF文件(有下载进度)
IOS(object-c) 下载查看 PDF 其实还是蛮容易操作的。在下载前,首先要把 IOS 可以保存文件的目录给过一遍:
IOS 文件保存目录
IOS 可以自定义写入的文件目录,是很有限的,只能是这3个目录:
1. NSDocumentDirectory
下载文件到该目录,则该文档可以用 iTunes 直接查看。对于安全性不高,便于浏览的文件,pdf ,可以考虑下载到该目录。、
2. NSLibraryDirectory
下载文件到该目录,则该文档不可用 iTunes 直接查看。只能在 APP 内部查看,对于文件有安全性方面的考虑,可以下载到该 目录。
3.NSCachesDirectory
该目录存放的主要是缓存文件,如 图片的缓存数据等。不适合存放永久性的文件。
本文首发于,博客园,请搜索:博客园 - 寻自己,查看原版文章
本文首发地址:IOS下载查看PDF文件(有下载进度) - http://www.cnblogs.com/xunziji/p/3242843.html
IOS 下载 pdf 文件
在 IOS 开发过程中一直使用的都是 AFNetworking( https://github.com/AFNetworking/AFNetworking) 负责的网络通信,并且 这个开源的组件很稳定,也很易用,同时使用的人也是蛮多的,网上各种解决方案都很好找。这次下载也是用的 这个组件。
//设置下载文件保存的目录
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString* _filePath = [paths objectAtIndex:]; //File Url
NSString* fileUrl = @"http://.../...pdf"; //Encode Url 如果Url 中含有空格,一定要先 Encode
fileUrl = [fileUrl stringByReplacingOccurrencesOfString:@" " withString:@"%20"]]; //创建 Request
NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:fileUrl]];
NSString* fileName = @"down_form.pdf";
NSString* filePath = [_filePath stringByAppendingPathComponent:fileName]; //下载进行中的事件
AFURLConnectionOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.outputStream = [NSOutputStream outputStreamToFileAtPath:filePath append:NO]; [operation setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) {
//下载的进度,如 0.53,就是 53%
float progress = (float)totalBytesRead / totalBytesExpectedToRead; //下载完成
//该方法会在下载完成后立即执行
if (progress == 1.0) {
[downloadsTableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}
}]; //下载完成的事件
//该方法会在下载完成后 延迟 2秒左右执行
//根据完成后需要处理的及时性不高,可以采用该方法
[operation setCompletionBlock:^{ }]; [operation start];
本文首发于,博客园,请搜索:博客园 - 寻自己,查看原版文章
本文首发地址:IOS下载查看PDF文件(有下载进度) - http://www.cnblogs.com/xunziji/p/3242843.html
查看 PDF 文件
IOS 下查看 PDF 文件的方法是蛮多的,但是 WebView 最简单便捷,虽然不是最强大的。
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString* filePath = [paths objectAtIndex:]; NSString* fileName = @"down_form.pdf";
NSString *path = [filePath stringByAppendingPathComponent:fileName];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:path];
if (fileExists) {
path = [Util urlEncodeString:path];
NSURL* url = [[NSURL alloc]initWithString:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
}
本文首发于,博客园,请搜索:博客园 - 寻自己,查看原版文章
本文首发地址:IOS下载查看PDF文件(有下载进度) - http://www.cnblogs.com/xunziji/p/3242843.html
IOS下载查看PDF文件(有下载进度)的更多相关文章
- 在js内生成PDF文件并下载的功能实现(不调用后端),以及生成pdf时换行的格式不被渲染,word-break:break-all
在js内生成PDF文件并下载的功能实现(不调用后端),以及生成pdf时换行的格式不被渲染,word-break:break-all 前天来了个新需求, 有一个授权书的文件要点击下载, 需要在前端生成, ...
- 【转载】Chrome 0day漏洞:不要用Chrome查看pdf文件
英文原文地址:https://blog.edgespot.io/2019/02/edgespot-detects-pdf-zero-day-samples.html 中文原文地址:https://ww ...
- Nginx环境下,PHP下载,中文文件,下载失效(英文可以下载)怎么解决呢?
参考出处: http://www.imooc.com/qadetail/76393 Nginx环境下,PHP下载,中文文件,下载失效(英文可以下载)怎么解决呢? 背景介绍: 文件名 为英文时可以下载 ...
- 用apache做为代理下载本地pdf文件
有一些公司会用apache做为代理,下载服务器上的pdf文件.以下是apache做为代理的配置 一. 环境 centos6.5 192.168.69.3 二. yum安装apache 服务 [zxj ...
- MyEclipse下直接查看class文件 jadnt158下载
在没有源文件的情况下,通过倒入两个jar文件就可以实现 文件链接:http://pan.baidu.com/share/link?shareid=372924537&uk=2435113113 ...
- SQL 横转竖 、竖专横 (转载) 使用Dapper.Contrib 开发.net core程序,兼容多种数据库 C# 读取PDF多级书签 Json.net日期格式化设置 ASPNET 下载共享文件 ASPNET 文件批量下载 递归,循环,尾递归 利用IDisposable接口构建包含非托管资源对象 《.NET 进阶指南》读书笔记2------定义不可改变类型
SQL 横转竖 .竖专横 (转载) 普通行列转换 问题:假设有张学生成绩表(tb)如下: 姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 ...
- C# 生成pdf文件客户端下载
itextsharp.dll 下载:http://sourceforge.net/projects/itextsharp/ 程序需引用:itextsharp.dll,itextsharp.pdfa.d ...
- WPF中查看PDF文件之MoonPdfLib类库
最近研究了两种PDF文件查看器,MoonPdfLib或者AdobeReader. 今天先说第一种,在网上扒到的很好的WPF中用MoonPdf类库来展示PDF文件. 在Sourceforge上下载到Mo ...
- 浏览器在线查看pdf文件 pdf.js的使用教程
谷歌浏览器可以直接在线查看pdf,而IE内核浏览器无法在线查看,默认是下载. 这里用到的是pdf.js,不仅支持IE内核浏览器,而且兼容手机查看pdf 官网地址:http://mozilla.gith ...
随机推荐
- 【BZOJ3172】[Tjoi2013]单词 AC自动机
[BZOJ3172][Tjoi2013]单词 Description 某人读论文,一篇论文是由许多单词组成.但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次. Input ...
- 原生js实现查询天气的小应用
demo:https://zsqosos.github.io/weather/ 截图: 实现功能:打开网页时显示用户所在城市的天气状况,在输入框输入城市可查询其它城市. 实现过程:先调用百度地图的AP ...
- HDU3948 & 回文树模板
Description: 求本质不同回文子串的个数 Solution: 回文树模板,学一学贴一贴啊... Code: /*================================= # Cre ...
- SVG文件:从Illustrator导文件到Web
可缩放矢量图形(SVG)是早在1998年就已经有的一种矢量图像格式.它总是和Web一起发展,但是直到现在才开始赶上Web发展的步伐.如今我们已经不能否认SVG和Web的相关性,所以让我们来学习一下从I ...
- 【Linux】crontab 定时任务
7月份,公司海外运营国发生数据库联接未释放,造成连接池连接不足的情况, 当时查询并没有及时解决问题, 为了避免现场同事多次人工重启系统的,因此写了个shell脚本,通过crontab 实现系统重启,但 ...
- 利用DOS批处理实现定时关机操作
10月1放假回来,寝室晚上10:30就停电了,最无法让人理解的是第二天早上8:00才来电.原来晚上电脑都是不关机的,开着WiFi一直到天亮,可是现在不行了,电脑如果一直开着第二天早上起来电脑肯定没电, ...
- 关于pl/sql数据库下拉中选项为空的问题
1.可能是在配置环境变量TNS_ADMIN的时候后面多了一个分号,去掉分号就可以了
- c#动态编译并动态生成dll
/// <summary> /// 动态编译并执行代码 /// </summary> /// <param name="code">代码< ...
- Web 入门之 XML
160916 1. 什么是XML? XML 是 EXtensible Markup Language 的缩写,称为可扩展标记语言,所谓可扩展指用户可根据XML规则自定义标记.例子1-1 = ...
- 浅谈P2P金融
自从李总理开发互联网大会,提出“互联网+”,好像与互联网相在的所有事情都火起来了.上至80岁的老头,下至十多岁的孩童,都知道了这个词“互联网+”.虽然大家可能对”互联网+“的概念都只是一支半解,但是像 ...