2011-07-29 37 views
1

我是iphone開發新手。我正在開發iPhone應用程序在我使用的Web服務,下面的代碼下載文件:在iphone中打開下載的文件在webview中

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]; 

我的文件路徑:/用戶/名爲myUsername /庫/應用程序支持/ iPhone模擬器/ 4.0 /應用/ 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]; 
} 

但它顯示的錯誤......我覺得位置是問題..我怎樣才能找到模擬器的路徑,以及在信號設備?

請幫助我...

回答

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]; 
+0

非常感謝...它的工作... – itdeeps

+0

這個相同的文件位置是否適用於原始設備? – itdeeps

+0

是的。 'NSSearchPathForDirectoriesInDomains'爲設備和模擬器返回適當的路徑。 – cduhn

0

你得到的錯誤是什麼?你的loadDocument方法是什麼樣的?你應該將文件加載到WebView中是這樣的:

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

對不起,我忘了添加loadDocument方法..現在我添加了..請檢查..它和你說的一樣...而我的錯誤是:「[NSURL initFileURLWithPath:]:nil字符串參數「在控制檯中... – itdeeps

+0

我正在爲loadDocument方法中的路徑值獲取null值..任何想法? – itdeeps