无法使用 OpenIn 功能通过应用程序中的 webbrowser 打开 docx 文件
Posted
技术标签:
【中文标题】无法使用 OpenIn 功能通过应用程序中的 webbrowser 打开 docx 文件【英文标题】:Cannot open docx file through webbrowser in app using OpenIn functionality 【发布时间】:2012-06-12 11:21:57 【问题描述】:我正在使用“OpenIn”功能并将文件从网络浏览器打开到我的应用程序中。所有文件类型都已注册并且工作正常。当尝试从网络浏览器打开 docx、pptx 或其他文件时,“打开方式”框没有显示我的应用程序名称。虽然我可以使用 UIDocumentInteractionController 在我的应用程序中查看 docx 或 pptx 文件。我不知道问题出在哪里,因为它工作得很好。
欢迎提出任何建议。 提前感谢您的帮助
【问题讨论】:
你用的是什么方法? presentPreviewAnimated 或 presentOpenInMenuFromRect: inView: animated: ? 参考developer.apple.com/library/ios/#qa/qa2008/qa1630.html - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation and presentOpenInMenuFromBarButtonItem: animated: 以上两个我都用过职能。但是我遇到的问题是,当我在 Safari 浏览器中打开一个 docx 文件时,它会显示“OpenIn”按钮,但不会显示我的应用程序名称。但对于 doc 和其他文件,它会在“OpenIn”中显示我的应用名称。 【参考方案1】:doc UTI:com.microsoft.word.doc
docx UTI:org.openxmlformats.wordprocessingml.document
ppt UTI:com.microsoft.powerpoint.ppt
pptx UTI:org.openxmlformats.presentationml.presentation
xls UTI:com.microsoft.excel.xls
xlsx UTI:org.openxmlformats.spreadsheetml.sheet
示例:
<dict>
<key>CFBundleTypeName</key>
<string>Microsoft Word 2003 XML document</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSHandlerRank</key>
<string>Alternate</string>
<key>LSItemContentTypes</key>
<array>
<string>org.openxmlformats.wordprocessingml.document</string>
</array>
</dict>
【讨论】:
【参考方案2】:在您的应用程序的 info.plist 中,您应该添加类似于以下内容的内容,以允许您的应用程序打开,比如 PDF 文件,对吧?
只需将上面的替换为这个,
请注意,Document Content Type UTIs
已更改为 public.item
,这是 ppt、doc 等 UTI 所遵循的。
因此现在,您应该能够获得 pdf、doc、docx、ppt、pptx、xls、xlsx 的“打开方式”选项。
【讨论】:
【参考方案3】:UIWebView
不支持 MS Office 2007 及更高版本的文件格式,即 docx、pptx、xlsx,因为文件架构。
【讨论】:
它确实支持 MS Office 2007 文件格式。如果我在服务器端添加 docx 或 pptx 文件,然后将我的应用程序与服务器同步,它会向我显示 docx 文件。单击该文件时,它会显示在 Web 视图中。我面临的唯一问题是当我尝试打开文件表单网络浏览器(Safari)时,它显示“打开方式”按钮,但不显示我的应用程序名称 那是我的错。根据我上次的经验,我无法以 .docx 文件格式打开它,但是当我将其转换为 .doc 文件时,它就很好了。以上是关于无法使用 OpenIn 功能通过应用程序中的 webbrowser 打开 docx 文件的主要内容,如果未能解决你的问题,请参考以下文章