Давайте посмотрим, как 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.

Спасибо за чтение. Если у вас есть вопросы или предложения, дайте мне знать в комментариях.