我需要让我的应用程序打开来自Safari和Mail应用程序的文档,并在UIDocumentInteractionController课堂上打开"Open In ..." .我该如何做到这一点?
在iOS设备上,Mail应用程序为附件提供"Open In ..."选项.列出的应用程序已在操作系统中注册了CFBundleDocumentTypes.我想知道的是我的应用程序如何允许用户在其他应用程序中打开我的应用程序生成的文件.Mail是唯一提供此功能的应用程序吗?
我正在尝试实现注册过程,该过程允许我的iOS应用程序显示在其他应用程序的"打开方式"列表中(如Apple的文档交互编程主题中所述).我希望我的应用程序能够处理来自任何提供标准音频文件格式(MP3,AIFF,WAV等)的应用程序的音频.
据我所知,我需要做的就是将CFBundleDocumentTypes关键字和相关的子数据添加到我的应用程序的Info.plist中.这是我放入的(通过Xcode 4的文档类型编辑器):
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeIconFiles</key>
<array>
<string>scrubbulator-icon</string>
</array>
<key>CFBundleTypeName</key>
<string>Audio</string>
<key>LSHandlerRank</key>
<string>Alternative</string>
<key>LSItemContentTypes</key>
<array>
<string>public.mp3</string>
</array>
</dict>
</array>
Run Code Online (Sandbox Code Playgroud)
添加此代码不会在应用程序的"打开方式"菜单中显示我的应用程序(我在iPhone上测试,使用Dropbox中的MP3作为文件源.应用程序AudioMemos和Evernote都显示为Dropbox中的MP3文件,所以我知道支持的格式).有什么明显的东西我做错了,还是还有其他我需要实现的东西?
(注意:我没有UTExportedTypeDeclarations在我的Info.plist中设置一个项目,因为我理解这些只是自定义UTI所必需的.因为我使用的是系统UTI,我认为它不应该是必要的,但如果我有正确的请纠正我我错了.)
编辑
我添加了以下Exported Type UTI,但没有成功:
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>kUTTypeMP3</string>
</array>
<key>UTTypeDescription</key>
<string>Audio file</string>
<key>UTTypeIdentifier</key>
<string>kUTTypeMP3</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>mp3</string>
</array>
</dict>
</dict>
</array>
Run Code Online (Sandbox Code Playgroud)