在iphone的webview中打开下载的文件

时间:2011-07-29 09:35:50

标签: iphone objective-c ios uiwebview

我是iphone开发的新手。我正在开发一个iphone应用程序,其中我使用Web服务下载文件,代码如下:

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath =  [paths objectAtIndex:0];
NSString *fileLoc = [basePath stringByAppendingString:@"/filename.pdf"];
NSData *fileData = [self decodeBase64WithString:soapResults];
[fileData writeToFile:fileLoc atomically:YES];

我的文件在路径中:/ Users / myusername / Library / Application Support / iPhone Simulator / 4.0 / Applications / 7A627E64-DEAB-40FA-BE04-35ED50580B65 / filename.pdf

如何使用uiwebview打开此文件???我试过这个:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath =  [paths objectAtIndex:0];
NSString *fileLoc = [basePath stringByAppendingString:@"/filename"];
[self loadDocument:fileLoc inView:mywebview];

我的loadDocument方法是:

-(void)loadDocument:(NSString*)documentName inView:(UIWebView*)webView
{
NSString *path = [[NSBundle mainBundle] pathForResource:documentName ofType:@"pdf"];
NSURL *url = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];  
}

但它显示错误......我认为位置是问题..如何在模拟器中找到路径以及在orignal设备中???

请帮帮我......

2 个答案:

答案 0 :(得分:2)

pathForResource:ofType:只能用于加载资源文件,这些文件作为应用程序包的一部分提供。您正在尝试从Documents目录中加载下载的文件。所以你应该能够做到

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath =  [paths objectAtIndex:0];
NSString *fileLoc = [basePath stringByAppendingString:@"/filename.pdf"];
NSURL *url = [NSURL fileURLWithPath:fileLoc];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request]; 

答案 1 :(得分:0)

你得到的错误是什么?您的loadDocument方法是什么样的?您应该将文档加载到WebView中,如下所示:

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:fileLoc]]];