UIWebView无法打开ms word(doc)和ms excel(xls)文件。

3
我正在使用XCode 3.2.5 iOS SDK 4.2为iPad开发应用程序。该应用程序需要打开PDF、DOC和XLS文件,并向用户预览它们。我尝试使用UIWebView控件打开它们,但只有PDF文件能够正确地打开。当打开DOC或XLS时,我得到一个黑色的空视图。这在模拟器和设备上都会发生。我做错了什么?以下是代码:
-(void)prepareToShow:(NSString*)filePath fileType:(NSString*)fileType request:(NSURLRequest*)request{

UIWebView *webView = (UIWebView*)self.view;
self.actualFilePath = filePath;

NSLog(@"File Path %@",filePath);

NSString *mimeType = @"";
if ([fileType caseInsensitiveCompare:@"PDF"]==NSOrderedSame){
    mimeType = @"application/pdf";
} else  if ([fileType caseInsensitiveCompare:@"DOC"]==NSOrderedSame){
    mimeType = @"application/msword";
} else  if ([fileType caseInsensitiveCompare:@"XLS"]==NSOrderedSame){
    mimeType = @"application/vnd.ms-excel";
}

[webView loadData:[NSData dataWithContentsOfFile:filePath] MIMEType:mimeType textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:@"http://www.google.com"]];

}

服务器上的.doc和.xls文件的MIME类型设置正确了吗? - onnoweb
服务器只是发送原始数据。我有一个函数读取这些数据并根据文件类型在临时目录中创建文件。我已经在模拟器上测试过了。文件已经被创建,我可以在 Mac 上打开它(预览它)。这告诉我文件已经正确地创建了。 - Martin Garcia
1
尝试通过UIDocumentController而不是UIWebView打开它们:http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIDocumentInteractionController_class/Reference/Reference.html%23//apple_ref/doc/uid/TP40009304 - onnoweb
感谢 onnoweb!!我不知道那个控制器。我实现了它,而且完美运作。 - Martin Garcia
@MartinGarcia - 你能发一下你是怎么做到的代码吗?我也想在UIWebView中打开.doc文件... - TheTiger
1个回答

3

如果要加载 Word、Excel 或 PDF 文档,你需要知道文档文件的 物理路径,也就是说文件应该被保存在文档或临时目录中,或者可能在 应用程序包 中。

//now use file path to load in webview
[yourWebView loadRequest:[NSURLRequest requestWithURL:[NSURL  fileURLWithPath:yourFilePath]]];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接