繁体   English   中英

UIWebview(iOS)中的Docx支持?

[英]Docx support in UIWebview(iOS)?

我已经检查了 doc support 的官方链接,很明显 UIWebview 不支持 docx。

但是,我还发现有些人能够在 UIWebview 中打开 docx 文件:

无法使用 OpenIn 功能通过应用程序中的 webbrowser 打开 docx 文件

为什么 doc 和 docx 在 iOS 中丢失样式信息?

如何在 iPhone 中打开 Microsoft Office 文档

另外,afaik,iOS safari 浏览器是基于 UIWebview 构建的,我可以在浏览器中从 Internet 打开 docx 文件。

但是,当我从我的测试服务器下载 docx 时(我通过从模拟器导入它交叉检查了下载的 docx,它在我的 mac 上完美打开),我无法在 UIWebview 中查看它。

我很困惑,是否支持 docx? 或者似乎 docx 有更多的格式支持其中一些?

这是我的加载代码:

NSURLRequest *request = [NSURLRequest requestWithURL:urlPath];
[webViewForDocsView loadRequest:request];

是的UIWebView支持 docx。 刚刚尝试从包中加载一个 docx 文件,它似乎工作正常(在这个名为“DOC1.docx”的示例中)::

NSString *path = [[NSBundle mainBundle] pathForResource:@"DOC1" ofType:@"docx"];
NSURL *targetURL = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
[mywebView loadRequest:request];

并且如果您尝试显示驻留在某处服务器上的 docx 文件,您可以直接将其加载到您的 Web 视图中:

NSURL *targetURL = [NSURL URLWithString:@"http://www.central.wa.edu.au/Current_Students/JobsCareersandLeavingCentral/Documents/Resume%20Template.docx"];
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
[mywebView loadRequest:request];

不知道为什么,但是使用 URL 方案加载 docx 不起作用,(下面的代码不起作用)

 NSURLRequest *request = [NSURLRequest requestWithURL:urlPath];
[webViewForDocsView loadRequest:request];

相反,在内存中加载文件(使用 NSData)并使用 MIME 类型加载数据工作(下面的代码就像魅力一样!)

NSString *path = [urlFileInView path];
NSData *data = [[NSFileManager defaultManager] contentsAtPath:path];


webViewForDocsView.delegate = self;
[webViewForDocsView loadData:data MIMEType:@"application/vnd.openxmlformats-officedocument.wordprocessingml.document" textEncodingName:@"UTF-8" baseURL:nil];

使用 UIWebView 显示选择的文档类型

根据 Apple 文档, UIWebView不支持 docx 并且已弃用。

要在应用程序中打开 docx,请使用UIDocumentInteractionController

DispatchQueue.main.async {
      let docOpener = UIDocumentInteractionController.init(url: fileURL)
      docOpener.delegate = self
      docOpener.presentPreview(animated: true)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM