2015-03-19 4 views
2

Как я могу заставить свое приложение отображаться в списке активности Share Safari, фотографии и т. Д.? Я бы хотел, чтобы люди обменивались ссылкой/изображением или текстом через мое приложение, как на Facebook.ios: Позвольте людям обмениваться ссылкой/изображением/текстом К моему приложению

Facebook/Twitter и т. Д. Доступны по умолчанию UIActivityType, но как это делают другие приложения, такие как Pinterest, Zomato и т. Д.?

ответ

0

Это новая функциональность, реализованная в iOS 8 и выше (и OS X 10.10 и выше). Это называется Extensions. Расширения позволяют приложениям покидать свою изолированную среду Apple и получать доступ к другим частям ОС, включая центр уведомлений и общие листы. Apple, ставит его так:

Начиная с прошивкой 8.0 и OS X v10.10, расширение приложение позволяет расширить пользовательские функции и содержание за пределами вашего приложения и сделать его доступным для пользователей в то время как они используют другие приложений или системы. Вы создаете расширение приложения , чтобы включить конкретную задачу; после того как пользователи получат расширение , они могут использовать его для выполнения этой задачи в различных контекстах . Например, если вы предоставляете расширение, которое позволяет использовать на вашем веб-сайте для совместного использования, пользователи могут использовать его для публикации комментария во время просмотра в Интернете. Или, если вы предоставляете расширение, которое отображает текущие спортивные результаты, пользователи могут поместить его в Уведомление Центр, чтобы они могли получить последние результаты, открыв сегодня вид . Вы даже можете создать расширение, которое предоставляет пользовательскую клавиатуру , которую пользователи могут использовать вместо системной клавиатуры iOS.

Существует несколько различных типов расширений, включая приложения Apple Watch. Вы можете просмотреть все эти типы в документации Apple.

Чтобы приступить к созданию расширений, вот некоторые ресурсы:

3

Самая простая возможность - использовать ассоциацию типов файлов. Там уже много учебников, поскольку концепция уже установлена, поэтому я просто проведу вас через основные ключевые слова.

Прежде всего определить, подходит ли вам Uniform Type Identifiers (UTI). Here - это список доступных в настоящее время UTI от Apple.

Затем в проекте Xcode откройте цель и перейдите на страницу Info. Там вы найдете Тип документа. Откройте его и нажмите знак «плюс», чтобы добавить новый тип документа.Укажите имя и УИП вы хотите поддержать (в этом примере я выбрал PDF):

enter image description here

Обратите внимание, что вы также должны предоставить дополнительные свойства документа. Большинство учебников помещали в (LSHandlerRank, Alternate) в качестве пары ключ, значение, но я не нашел для этого никакой причины. Он работает с (foo, bar).

Затем запустите приложение, чтобы он зарегистрировался на устройстве.

Когда у Вас теперь есть PDF, скажем, вложение в ваше почтовое приложение, приложение теперь будет отображаться в списке:

enter image description here

Наконец, в вашем 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 
Смежные вопросы