如何在iOS上启用我自己的自定义文件类型的打开

问题描述:

我有一个iOS应用程序,我希望能够发送和接收其自己的文件类型的实例。流程将为:如何在iOS上启用我自己的自定义文件类型的打开

  • 用户1在应用程序中选择共享功能。这会生成一个我的类型文件(比如file.myextension),并使用UIActivityViewController进行共享。他们发送给用户2(AirDrop,电子邮件,无论如何)。
  • 用户2收到该文件并将其打开。系统提供使用我的应用程序打开它。

我有第一部分工作。我可以生成file.myExtension并给UIActivityViewController一个文件的URL。这在用户1的设备上的AirDrop中正确显示,我可以使用AirDrop或电子邮件或其他方式传输文件。但接收设备拒绝将我的应用程序显示为打开文件的选项。

我曾尝试:

  • 声明导出和导入尿路感染和文档类型为每this Apple Q&A。我已经三重检查了所有的ID都是相同的,所有的plist键都拼写正确。
  • 我试过单独导出和导入的UTI(带有文档类型)。 This article似乎表示,如果我想打开文件类型,则导入的是我想要的。 This SO answer说,注册一个我拥有的类型,并希望打开意味着我只是想导出。无论是自己的工作。

我的问题:我需要做些什么才能打开我在iOS上拥有的文件扩展名?我是否同时定义了导入和导出的UTI以及文档类型?只有一个出口或进口?任何意外的必需属性?

CFBundleDocumentTypes关键是你需要的。它应该是一个Array,并且数组中的每个项都应该是一个Dictionary。每个字典应包含下列键:

CFBundleTypeIconFiles(字符串数组)

CFBundleTypeName(字符串)

CFBundleTypeRole(字符串)

LSHandlerRank(字符串)

LSIsAppleDefaultForType(布尔)

LSItemCont entTypes(字符串数组)

下面是它看起来像我的应用程序(的东西涂黑,以避免泄露我公司的身份):

enter image description here

+0

我已经设置好了。没有运气。 –

想通了。文档中没有明确的一个关键细节是文档类型部分中类型的最后部分必须与您选择的文件扩展名匹配。