WebKit 的 WebView (OS X) 是不是能够显示 docx 文件?

Posted

技术标签:

【中文标题】WebKit 的 WebView (OS X) 是不是能够显示 docx 文件?【英文标题】:Is WebKit's WebView (OS X) able to display docx file?WebKit 的 WebView (OS X) 是否能够显示 docx 文件? 【发布时间】:2014-01-08 11:29:08 【问题描述】:

我想使用 WebView(注意:它不是 ios 中的 UIWebView,我说的是 Mac OS X WebView)在我的 Mac 应用程序中显示 docx 文档,但它无法加载它。

我正在使用的代码:

   NSString *path = [[NSBundle mainBundle] pathForResource:@"demo.docx" ofType:nil];
   NSURL *url = [NSURL fileURLWithPath:path];   
   NSURLRequest *request = [NSURLRequest requestWithURL:url];
   [[self.webViewPlaceholder mainFrame] loadRequest:request];

(demo.docx 是来自 Calibre 项目的演示文件)。

WebResourceLoadDelegate 方法webView:resource:didFailLoadingWithError:fromDataSource: 我得到:

Error Domain=WebKitErrorDomain Code=102 "Frame load interrupted" UserInfo=0x608000075500 NSErrorFailingURLStringKey=about:blank, NSLocalizedDescription=Frame load interrupted, NSErrorFailingURLKey=about:blank

这是否意味着WebView无法显示这种文档?

这有点令人惊讶,而示例 iOS 项目中的相同代码显示相同的演示文件而没有任何问题。

直接将demo.docx拖到Safari标签上不会加载文档,所以我猜Mac OS X下的WebKit基本上不支持这种格式?

如果我的假设是正确的,那么显示 docx 文件内容的最佳方法是什么?转换成PDF?转 html

【问题讨论】:

你可以看youtube.com/watch?v=OuF2MGX0Os8 (libopc & WebKit) 【参考方案1】:

可以在 Mac OS X 上打开 Docx 的唯一应用是 Word、Pages 或其他类似程序。我真的想知道您是否可以从浏览器中打开 docx。

我建议您将 docx 转换为 PDF 或 HTML,但我不知道有任何库在客户端执行该操作。例如,您可以将https://***.com/questions/9299030/convert-docx-to-pdf-using-php#9299276 用于 PHP。

【讨论】:

以上是关于WebKit 的 WebView (OS X) 是不是能够显示 docx 文件?的主要内容,如果未能解决你的问题,请参考以下文章

WebView

OS X:-webView:shouldStartLoadWithRequest:navigationType: 对于 WebView

js如何判断当前运行环境是ios webview还是android webview

对WebView接口的实现

OS X 中每个 WebView 的单独 cookie jar

WebView网络请求