如何在iOS

时间:2016-08-18 17:31:42

标签: ios uiactivityviewcontroller uti airdrop

我有一个iOS应用程序,我希望能够发送和接收自己的文件类型的实例。流程将是:

  • 用户1在应用程序中选择共享功能。这将生成我的类型的文件(例如,file.myextension)并使用UIActivityViewController共享它。他们以某种方式将其发送给用户2(AirDrop,电子邮件,等等)。
  • 用户2接收该文件并将其打开。系统提供使用我的应用程序打开它。

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

我试过了:

  • 根据this Apple Q&A声明导出和导入的UTI以及文档类型。我已经三次检查所有ID是否相同,所有plist键拼写正确。
  • 我单独尝试过导出和导入的UTI(带文档类型)。 This article似乎说如果我想打开文件类型,导入的是我想要的。 This SO answer说注册我拥有的类型并想要打开意味着我只想要导出。两者都没有起作用。

我的问题:为了能够在iOS上打开我拥有的文件扩展名,我该怎么办?我是否定义了导入和导出的UTI以及文档类型?只是出口或进口的一个?任何意外的必需属性?

2 个答案:

答案 0 :(得分:0)

CFBundleDocumentTypes键是您需要的。它应该是一个数组,并且数组中的每个项都应该是一个Dictionary。每个词典应包含以下键:

  

CFBundleTypeIconFiles(字符串数组)

     

CFBundleTypeName(String)

     

CFBundleTypeRole(String)

     

LSHandlerRank(String)

     

LSIsAppleDefaultForType(布尔)

     

LSItemContentTypes(字符串数组)

以下是我的应用程序的样子(为了避免泄露我公司的身份而被涂黑的东西):

enter image description here

答案 1 :(得分:0)

想出来。文档中未明确指出的一个关键细节是“文档类型”部分中类型的最后一部分必须与您选择的文件扩展名相匹配。