Давайте посмотрим, как UIActivityViewController обрабатывает совместное использование текста, URL-адресов, изображений и т. Д.
Если вы хотите поделиться контентом в своем приложении, Apple в iOS 6 представила класс UIActivityViewController
. Этот класс обрабатывает URL-адреса, текст, изображения, видео и многое другое просто и с помощью всего нескольких строк кода.
Сегодня в этой статье мы поговорим о том, как реализовать UIActivityViewController
в нашем приложении и что нам нужно сделать, чтобы делиться нашим контентом.
Начиная
Сначала откройте Xcode и создайте новый проект. Выберите Приложение для одного просмотра.
Теперь создайте UITextView
под названием messageTextView
в верхней части экрана, который будет содержать наше сообщение, и кнопку в нижней части экрана, при нажатии на которую будет отображаться наше меню общего доступа.
Реализация обмена текстом
Зайдите в функцию кнопки IBAction
и добавьте следующий код:
let items = [messageTextView.text] let ac = UIActivityViewController(activityItems: items, applicationActivities: nil) present(ac, animated: true)
Эти простые три строки создадут массив с нашим UITextView
текстом, создадут объект UIActivityViewController
, а затем покажут пользователю меню общего доступа.
Здесь мы можем найти множество приложений, которые поддерживают обмен текстом, например, «Сообщения», «Почта», «Whatsapp, Telegram» и т. Д. Если мы попытаемся нажать на значок «Сообщения», мы увидим, что приложение откроется, а наш текст появится в текстовом поле. .
Реализация совместного использования изображений
Если мы хотим поделиться изображением, нам нужно немного изменить интерфейс приложения и добавить UIImageView
с именем profileImageView
под элементом управления UITextView
.
Теперь измените функцию кнопки IBAction
следующим кодом:
let items = [profileImageView.image] let ac = UIActivityViewController(activityItems: items, applicationActivities: nil) present(ac, animated: true)
Когда вы делитесь изображением из своего приложения, пользователи могут сохранить его в галерее, но запись в библиотеку фотографий - это ограниченная операция. Итак, если пользователь нажмет на эту операцию, приложение выйдет из строя.
Чтобы избежать этой проблемы, вам нужно спросить разрешение у пользователя следующим образом:
- Откройте
Info.plist
файл своего проекта. - Щелкните значок
+
. - Нажмите кнопку Конфиденциальность - Описание использования дополнений фотоархива.
- Установите значение Нам нужно написать фото в вашей галерее.
Полный код
Вы можете найти полный код на GitHub.
Спасибо за чтение. Если у вас есть вопросы или предложения, дайте мне знать в комментариях.