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

Ekr*_*kra 5 iphone iphone-sdk-3.0

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

但是我觉得有些问题在我身边出现了问题并且不适用于上述格式,但我的代码对.txt和.pdf文件工作正常.

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

下面是我的.doc片段

[webView loadData:requestData MIMEType:@"application/msword" textEncodingName:@"UTF-8" baseURL:nil];
Run Code Online (Sandbox Code Playgroud)

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

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

任何帮助都非常感谢.

等待你的回复.

更新:........

对于打开这些类型的文件格式,NSData似乎存在一些问题.我的数据是加密的,所以我不能直接使用 requestWithURL,其他的事情是我需要传递凭据来获取文件,如果我使用凭据保存凭据,凭据就不能正常工作

[[NSURLCredentialStorage sharedCredentialStorage] setDefaultCredential:credential
                                        forProtectionSpace:protectionSpace];
Run Code Online (Sandbox Code Playgroud)

然后使用下面的请求

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]] ]
Run Code Online (Sandbox Code Playgroud)

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

DSh*_*hah 5

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

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


dra*_*ard 4

并非所有这些格式 (docx) 都受支持。这看起来像是官方的说法。在示例中,Apple 没有指定 mime 类型。

这个问题表明您必须使用 NSURLRequest 而不是 loadData。

编辑:

据我所知,您不能直接将这些类型的数据传递给 loadData。

简单的解决方法是写入临时文件。您可以在 webViewDidFinishLoad 中删除它,或者从技术上讲,在文件打开后立即删除它。

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