2010-05-24 121 views
5

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

但我猜想我的一边出了问题,它不适用于上述格式,但我的代码工作正常.txt和.pdf文件。

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

下面

是我的.doc

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

片段为我使用的MIME类型.PPT作为"application/vnd.ms-powerpoint"

注:如果我做的MIME类型为 “text/html的” 为.DOC/.rtf然后它显示一些垃圾数据所以我认为从我身边的MIME类型中缺少一些东西。

任何帮助,高度赞赏。

等待您的答复。

更新:........

似乎有一些问题与NSData的打开这些类型的文件格式。 我的数据是加密的,所以我不能用 requestWithURL直接和其他的事情是我需要传递凭证来获取文件和凭据proplerly不工作,如果我救使用

[[NSURLCredentialStorage sharedCredentialStorage] setDefaultCredential:credential 
             forProtectionSpace:protectionSpace]; 

的凭据,然后进行使用以下

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]] ] 

要求有什么办法,我可以使用的NSData为上述格式,这样我可以做异步调用,并通过我的凭据,然后对数据进行解密,并显示在网页视图。

+0

请参阅本集MIME类型(适用于PPTX)中 - http://stackoverflow.com/questions/4212861/what-is-a -correct-mime-type-for-docx-pptx-etc – 2017-03-17 20:03:01

回答

4

并非所有的(DOCX)都支持这些格式。这看起来像official word。在这个例子中,Apple没有指定MIME类型。

This question建议您必须使用NSURLRequest而不是loadData。

编辑:

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

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

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

+1

感谢您的回复。 数据被加密,所以看起来我不能直接使用NSURLRequest。有什么办法可以使用NSData打开我的.doc,.ppt文件。 – Ekra 2010-05-25 06:48:03

+1

感谢您的回复。 我有尝试过的第一种方法它的工作。 第二种方法的工作 – Ekra 2010-05-26 19:55:07

0

尝试在iPhone上,而不是模拟器

3

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

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

现在适用于我。

5

尝试使用QuickLook框架,这是Apple给出的一个惊人的功能。如果你看到这样的情况,当你在MAC系统上选择任意文件并点击空格键时,你将快速预览你的文件,它可能是任何东西...... * .pdf,* .doc,* .docx或任何东西。 ..即使你没有安装这些软件的相同的文件,你会得到这些文件的预览...

QuickLook框架也提供相同的功能...请通过一些相同的链接。 。

+1

我知道你想使用WebView,但这也是最好的任何文件... :) – DShah 2012-01-16 16:30:33

+1

感谢您的评论。我也会寻找这个选项 – Ekra 2012-01-25 05:54:29