我熟悉IOS上的共享功能。我在我的应用程序中共享项目
[[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:nil];
我的问题是如何在我的应用程序的共享表中添加一个打开的选项?
根据正在打开的内容和设备安装的应用程序支持的文档类型,可以使用“打开...”选项。这不是你可以从你的应用程序改变的东西。
另一方面,如果您希望在应用程序的“打开方式”列表中显示的应用程序是您可以控制的其他应用程序,则可以将CFBundleDocumentTypes
密钥添加到这些应用程序的info.plists。这告诉iOS应用程序可以打开某些类型的文件。您可以使用public.jpeg
等UTI指定支持的文件类型,当用户尝试从UIActivityViewController打开其中一种文件类型时,ios将在选项中包含支持应用程序。
以下是对此的一个很好的讨论:How do I get my application to show up in the Open in... menu
这是关于UTI的讨论:Uniform Type Identifier Concepts
因此,例如,如果您的某个应用程序支持打开jpeg图像和任何文本文件,您可以将其添加到info.plist:
<array>
<dict>
<key>CFBundleTypeIconFiles</key>
<array/>
<key>CFBundleTypeName</key>
<string>Images</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSHandlerRank</key>
<string>Alternate</string>
<key>LSItemContentTypes</key>
<array>
<string>public.jpeg</string>
</array>
</dict>
<dict>
<key>CFBundleTypeIconFiles</key>
<array/>
<key>CFBundleTypeName</key>
<string>text</string>
<key>LSHandlerRank</key>
<string>Alternate</string>
<key>LSItemContentTypes</key>
<array>
<string>public.plain-text</string>
</array>
</dict>
</array>
但是,再次,如果您试图操纵显示活动控制器的应用程序中显示为“打开”选项的应用程序,则不能。您只能制作自己的应用程序,宣传它们支持某些文档类型,并从该iOS构建其“打开方式”选项。