iOS 开发显示文档的两种方法
2015-09-26 11:18
706 查看
在本篇文章中,介绍打开文件的两种方法:
一.利用UIWebView
使用UIWebView对象显示文档时在iOS中使用最多的解决方案。
//打开PDF文档
[selfopenFile:@"PDF_SEHistory.pdf"type:@"pdf"];
//打开word文档
[selfopenFile:@"file.doc"type:@"msword"];
其中第一个参数为文件名,需包含后缀;第二个参数为对应文件类型的MIMEType
-(void)openFile:(NSString *)fileName type:(NSString *)type
{
NSString *filePath = [[NSBundlemainBundle]
pathForResource:fileNameofType:nil];
NSData *fileData = [[NSDataalloc]
initWithContentsOfFile:filePath];
[self.webViewloadData:fileData
MIMEType:[NSStringstringWithFormat:@"application/%@",type]textEncodingName:@"UTF-8"baseURL:nil];
}
常见文件的MIMEType:
MIMEType extension
application/msword doc
application/pdf pdf
application/vnd.ms-powerpoint ppt
image/jpeg jpg/jpeg/jpe
image/gif gif
text/plain txt
video/mpeg mpeg
audio/mpeg mp3
更多MIMEType,请参考:点击打开链接
二.利用QuickLook框架
QuickLook支持许多文档格式的显示,例如Microsoft Word,Excel和PowerPoint。
在打开文件的类中需啊哟导入QuickLook框架的头文件:#import<QuickLook/QuickLook.h>,并使这个类遵从QLPreviewControllerDataSource
和QLPreviewControllerDelegate协议。
#pragma mark - QLPreviewControllerDelegate
-(NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller
{
return1;//返回需要打开文档的数目,这里我们只打开一个文档,所以返回1
}
#pragma mark - QLPreviewControllerDataSource
-(id<QLPreviewItem>)previewController:(QLPreviewController *)controller
previewItemAtIndex:(NSInteger)index
{
NSString *path = [[NSBundlemainBundle]
pathForResource:@"PDF_SEHistory"ofType:@"pdf"];
return [NSURLfileURLWithPath:path];//返回一个通过NSURL构造的QLPreviewItem对象
}
[selfpresentViewController:self.previewContrilleranimated:YEScompletion:nil];
使用QuickLook框架需要注意的是,当QLPreviewItem正在显示的时候,这个框架会在导航控制器会在导航控制中自动创建一个按钮,以允许用户通过Email发送和打印这个文档。
三.两者的区别
UIWebView显示文档非常消耗内存,当应用运行内存不足时,可能会导致崩溃。
iOS 技术交流群:488530658
一.利用UIWebView
使用UIWebView对象显示文档时在iOS中使用最多的解决方案。
//打开PDF文档
[selfopenFile:@"PDF_SEHistory.pdf"type:@"pdf"];
//打开word文档
[selfopenFile:@"file.doc"type:@"msword"];
其中第一个参数为文件名,需包含后缀;第二个参数为对应文件类型的MIMEType
-(void)openFile:(NSString *)fileName type:(NSString *)type
{
NSString *filePath = [[NSBundlemainBundle]
pathForResource:fileNameofType:nil];
NSData *fileData = [[NSDataalloc]
initWithContentsOfFile:filePath];
[self.webViewloadData:fileData
MIMEType:[NSStringstringWithFormat:@"application/%@",type]textEncodingName:@"UTF-8"baseURL:nil];
}
常见文件的MIMEType:
MIMEType extension
application/msword doc
application/pdf pdf
application/vnd.ms-powerpoint ppt
image/jpeg jpg/jpeg/jpe
image/gif gif
text/plain txt
video/mpeg mpeg
audio/mpeg mp3
更多MIMEType,请参考:点击打开链接
二.利用QuickLook框架
QuickLook支持许多文档格式的显示,例如Microsoft Word,Excel和PowerPoint。
在打开文件的类中需啊哟导入QuickLook框架的头文件:#import<QuickLook/QuickLook.h>,并使这个类遵从QLPreviewControllerDataSource
和QLPreviewControllerDelegate协议。
#pragma mark - QLPreviewControllerDelegate
-(NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller
{
return1;//返回需要打开文档的数目,这里我们只打开一个文档,所以返回1
}
#pragma mark - QLPreviewControllerDataSource
-(id<QLPreviewItem>)previewController:(QLPreviewController *)controller
previewItemAtIndex:(NSInteger)index
{
NSString *path = [[NSBundlemainBundle]
pathForResource:@"PDF_SEHistory"ofType:@"pdf"];
return [NSURLfileURLWithPath:path];//返回一个通过NSURL构造的QLPreviewItem对象
}
[selfpresentViewController:self.previewContrilleranimated:YEScompletion:nil];
使用QuickLook框架需要注意的是,当QLPreviewItem正在显示的时候,这个框架会在导航控制器会在导航控制中自动创建一个按钮,以允许用户通过Email发送和打印这个文档。
三.两者的区别
UIWebView显示文档非常消耗内存,当应用运行内存不足时,可能会导致崩溃。
iOS 技术交流群:488530658
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- 举例详解iOS开发过程中的沙盒机制与文件
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- javascript实现阻止iOS APP中的链接打开Safari浏览器
- IOS开发第三方语音-微信语音
- iOS开发之路--微博OAuth授权_取得用户授权的accessToken
- 基于UIControl控件实现ios点赞功能
- iOS开发中实现邮件和短信发送的简单示例