Добавление открытой опции In в общий лист в ObjectiveC - PullRequest
0 голосов
/ 21 марта 2019

Я знаком с функциональностью обмена на IOS.Я делюсь элементами в своем приложении, используя

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

. Мой вопрос: как добавить опцию открытия с опцией в общий доступ к моему приложению?

1 Ответ

3 голосов
/ 26 марта 2019

Параметры «Открыть в…» доступны на основе открываемого содержимого и типов документов, поддерживаемых установленными приложениями устройства.Это не то, что вы можете изменить из своего приложения.

С другой стороны, если приложения, которые вы хотите отобразить в списке «Открыть в» вашего приложения, - это другие приложения, которые вы можете контролировать, то вы можете добавить CFBundleDocumentTypes ключи к спискам info.plists этих приложений.Это говорит iOS, что приложения могут открывать определенные типы файлов.Вы указываете поддерживаемые типы файлов, используя UTI, такие как public.jpeg и т. Д., И когда пользователь пытается открыть один из этих типов файлов с помощью UIActivityViewController, ios включит в опции вспомогательные приложения.

Вот хорошее обсуждениеоб этом: Как мне заставить мое приложение отображаться в меню Open in ...

И вот обсуждение UTI: Понятия унифицированного идентификатора типа

Так, например, если одно из ваших приложений поддерживает открытие изображений в формате 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 создает свои опции «Открыть в».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...