Самая простая возможность - использовать ассоциацию типов файлов. Там уже много учебников, поскольку концепция уже установлена, поэтому я просто проведу вас через основные ключевые слова.
Прежде всего определить, подходит ли вам Uniform Type Identifiers (UTI). Here - это список доступных в настоящее время UTI от Apple.
Затем в проекте Xcode откройте цель и перейдите на страницу Info. Там вы найдете Тип документа. Откройте его и нажмите знак «плюс», чтобы добавить новый тип документа.Укажите имя и УИП вы хотите поддержать (в этом примере я выбрал PDF):
Обратите внимание, что вы также должны предоставить дополнительные свойства документа. Большинство учебников помещали в (LSHandlerRank, Alternate)
в качестве пары ключ, значение, но я не нашел для этого никакой причины. Он работает с (foo, bar)
.
Затем запустите приложение, чтобы он зарегистрировался на устройстве.
Когда у Вас теперь есть PDF, скажем, вложение в ваше почтовое приложение, приложение теперь будет отображаться в списке:
Наконец, в вашем AppDelegate вам необходимо реализовать следующий метод:
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
NSLog(@"App opened with url %@", url);
return YES;
}
, который вызывается всякий раз, когда ваше приложение получает PDF-документ. Файлы перейдут в специальную папку под названием «Входящие», а URL-адрес укажет имя файла, который был отправлен.
EDIT
Это пример вывода консоли из моего iPhone:
2015-03-19 15:27:32.841 so 29147257[3951:1529409] App opened with url file:///private/var/mobile/Containers/Data/Application/A5723926-F869-49C0-A2AF-756795932B81/Documents/Inbox/first-1.pdf