在app中我们有时候需要查看一些电脑上的文件,比如常用的Office文件和pdf等,首先想到的是试试用UIWebView加载文件,其实还有一种方法就是用iOS4.0及之后的SDK自带的一种预览的视图控制器来打开文件。但是注意,不管是用上面哪种方法,都不能修改打开的文件,只能是个预览的作用;
方法一:
用UIWebView加载文件
-(void)loadDocument
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"doc"];
NSURL *url = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 20, [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height-64-20)];
webView.multipleTouchEnabled = YES;
webView.scalesPageToFit = YES;
[self.view addSubview:webView];
[webView loadRequest:request];
}
方法二:
下面方法是直接通过QLPreviewController打开文档
Quicklook 支持的文件:
- iWork文档
- 微软Office97以上版本的文档
- RTF文档
- PDF文件
- 图片文件
- 文本文件和CSV文件
然后加入头文件:
#import <QuickLook/QuickLook.h>
-(void)gotoFile
{
QLPreviewController *qlViewController = [[QLPreviewController alloc] init];
qlViewController.dataSource = self;
[self.navigationController pushViewController:qlViewController animated:YES];
}
- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller
{
return 1;
}
- (id <QLPreviewItem>)previewController:(QLPreviewController *)controller
previewItemAtIndex:(NSInteger)index
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
if (!documentsDirectory)
{
NSLog(@"Documents directory not found!");//return ;
}
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"test.doc"];
NSURL *myQLDocument = [NSURL fileURLWithPath:appFile];
return myQLDocument;
}
网友评论