2016-08-18 2 views
0

У меня есть приложение iOS, которое я хочу, чтобы иметь возможность отправлять и получать экземпляры своего собственного типа файла. Поток будет:Как включить открытый мой собственный тип файла на iOS

  • Пользователь 1 выбирает функцию Share в приложении. Это создает файл моего типа (скажем, file.myextension) и делится им с помощью UIActivityViewController. Они отправляют его как-то пользователю 2 (AirDrop, электронная почта, что угодно).
  • Пользователь 2 получает файл и открывает его. Система предлагает открыть ее, используя мое приложение.

У меня есть первая часть работы. Я могу сгенерировать файл.myExtension и указать UIActivityViewController URL-адрес файла. Это правильно отображается в AirDrop на устройстве пользователя 1, и я могу передать файл с помощью AirDrop или электронной почты или что-то еще. Но приемное устройство отказывается показывать мое приложение как возможность открыть файл.

Я попытался:

  • объявляя экспортированные и импортированные ИМП и типа документа в соответствии с this Apple Q&A. Я проверил тройную проверку, что все идентификаторы одинаковы, и все ключи plist написаны правильно.
  • Я пробовал как экспортированный, так и импортированный UTI (с типом документа). This article, кажется, говорит, что Импортированный - это то, что я хочу, если я хочу открыть тип файла. This SO answer говорит, что регистрация типа, который у меня есть и который нужно открыть, означает, что я просто хочу экспортировать. Ни по своей собственной работе.

Мой вопрос: что мне нужно сделать, чтобы открыть расширение файла, которое у меня есть на iOS? Я определяю как импортированные, так и экспортированные ИМП вместе с типом документа? Только один из экспортированных или импортированных? Любые неожиданные атрибуты?

ответ

0

Ключ CFBundleDocumentTypes - это то, что вам нужно. Это должен быть массив, и каждый элемент массива должен быть Словарем. Каждый словарь должен содержать следующие ключи:

CFBundleTypeIconFiles (массив строк)

CFBundleTypeName (String)

CFBundleTypeRole (String)

LSHandlerRank (String)

LSIsAppleDefaultForType (Boolean)

LSItemCont entTypes (массив строк)

Вот как это выглядит для моего приложения (материал затемнены, чтобы избежать раскрытия личности моей компании):

enter image description here

+0

Я уже установил это. Не повезло. –

0

Фигурные его. Одна ключевая деталь, не явная в документах, состоит в том, что последняя часть типов в разделе Тип документа должна соответствовать выбранному расширению файла.

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

  • Нет связанных вопросов^_^