在Objective C中为共享表添加一个open in选项

问题描述 投票:-1回答:1

我熟悉IOS上的共享功能。我在我的应用程序中共享项目

[[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:nil];

我的问题是如何在我的应用程序的共享表中添加一个打开的选项?

ios objective-c iphone ios12
1个回答
3
投票

根据正在打开的内容和设备安装的应用程序支持的文档类型,可以使用“打开...”选项。这不是你可以从你的应用程序改变的东西。

另一方面,如果您希望在应用程序的“打开方式”列表中显示的应用程序是您可以控制的其他应用程序,则可以将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构建其“打开方式”选项。

© www.soinside.com 2019 - 2024. All rights reserved.