2014-02-21 3 views
7

Я пытаюсь зарегистрировать свое приложение для всех возможных типов файлов. Я добавил следующее к моему info.plist:Использование CFBundleDocumentTypes: почему мое приложение не отображается в меню «Поделиться»?

<key>CFBundleDocumentTypes</key> 
<array> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>public.data</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>public.data</string> 
      <string>public.content</string> 
     </array> 
    </dict> 
</array> 

Если я теперь открыть PDF в Safari и нажмите кнопку Сафари «Share», мое приложение не предлагается. Однако, если я коснусь самого PDF-файла, на экране появляется кнопка «Открыть», и там отображается мое приложение.

Это не настоящая проблема, но это мешает пользователям импортировать фотографии в мое приложение, потому что в приложении «Фотографии» нет меню «Открыть».

Могу ли я зарегистрироваться для меню «Поделиться»?

+0

может у PLS предоставить мне пример для того же. Я ищу то же самое решение –

ответ

2

К сожалению, это невозможно, потому что:

экран доли в Safari использует UIActivityViewController для отображения ряд мероприятий, которые могут быть выполнены со страницей. Эти виды деятельности определяются в UIActivity.h и, как правило, система определенных мероприятий, таких как Опубликовать в Facebook, Опубликовать в Twitter, Сообщение, печати и т.д.

Для несистемных определяется активностью появится на этом экране, нужно создать собственный подклассу UIActivity, а затем инициализировать UIActivityViewController с помощью массива из них.

«Открыть в ...» экран с другой стороны, выглядит так же, но с использованием UIDocumentInteractionController, который отображает приложения, которые могут открыть данную URL/UTI (не Google ИМП ...)

+0

Но это наоборот. Что я хочу: _my_ приложение в меню _Safari's_ «Share». – Krumelur

+0

Это невозможно, потому что UIActivityViewController не отображает приложения, а только системные службы. –

+0

Чтобы ваше приложение появилось на этом экране Share, инженеры Safari должны были создать пользовательский класс UIActivity, который при нажатии на него запустит ваше приложение. –

Смежные вопросы