使用Webview查看iphone中的.doc,.docx,.rtf,.ppt文件

时间:2010-05-24 11:36:07

标签: iphone-sdk-3.0 iphone

我想在iphone中查看.doc,.docx,.rtf,.ppt文件。

但是我觉得我身边出了问题而且它不适用于上述格式,但我的代码适用于.txt和.pdf文件。

我已经阅读了有关Webview的文档,它声明它支持查看上述文档。

下面的

是.doc

的代码段
[webView loadData:requestData MIMEType:@"application/msword" textEncodingName:@"UTF-8" baseURL:nil];

for .ppt我使用的MIME类型为"application/vnd.ms-powerpoint"

注意:如果我为.doc / .rtf创建MIME类型为“text / html”,那么它会显示一些垃圾数据所以我认为MIME类型中缺少一些东西。

非常感谢任何帮助。

等待你的回复。

更新:........

NSData似乎存在打开这些类型的文件格式的问题。 我的数据已加密,因此无法使用 直接 requestWithURL ,其他的事情是我需要传递凭据才能获取文件,如果我使用

保存凭据,凭据就无法正常工作
[[NSURLCredentialStorage sharedCredentialStorage] setDefaultCredential:credential
                                        forProtectionSpace:protectionSpace];

然后使用下面的

发出请求
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]] ]

有什么方法可以将NSData用于上述格式,这样我就可以进行异步调用并传递我的凭据,然后解密数据并在WebView中显示它。

4 个答案:

答案 0 :(得分:5)

尝试使用 QuickLook 框架,这是Apple提供的一项了不起的功能。如果您已经看到这一点,当您在MAC系统上选择任何文件并单击空格键时,您将快速预览您的文件,它可能是任何东西...... * .pdf,* .doc,* .docx或任何东西。 ..即使您没有为相同的文件安装这些软件,您也可以获得这些文件的预览......

QuickLook 框架也提供了相同的功能......请仔细阅读相同的链接..

答案 1 :(得分:4)

并非所有格式(docx)都受支持。这看起来像official word。在示例中,Apple未指定mime类型。

This question表示您必须使用NSURLRequest而不是loadData。

编辑:

据我所见,您无法直接将数据传递给loadData以获取这些类型。

简单的解决方法是写入临时文件。你可以在webViewDidFinishLoad中删除它,或者从技术上讲,只要文件被打开就可以删除它。

努力工作是使用NSURLCache。您应该能够实现自定义NSURLCache并让WebKit通过setSharedURLCache使用它。您的缓存基本上知道如何获取本地加密文件并假装它们被缓存。我没有试过这个,但我认为这是你最好的选择。这种方法可能会像loadData一样被阻止。

答案 2 :(得分:3)

你需要为baseURL提供一些东西:例如:

[webView loadData:requestData MIMEType:@"application/msword" textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:@"http://localhost/"]];

现在适合我。

答案 3 :(得分:0)

在iPhone而不是模拟器上试用