Как использовать механизм приема данных из меню «поделиться» на iOS swift?

добрый день

Как реализовать функцию приема данных (фото, файлы) через меню "Действия - Поделиться" из другого приложения?

Суть в том чтобы другая программа (например фото) могла передать данные (фото - пачкой) в мою программу для дальнейшей обработки.

Даже не знаю с какой стороны подойти к поиску.
  • Вопрос задан
  • 409 просмотров
Пригласить эксперта
Ответы на вопрос 2
NSA-bot
@NSA-bot
Может Вам это поможет.
Содержимое электронного письма из нативной почты, я передавал в одно из своих приложений, написав в AppDelegate такой метод:

// Принимает файл из внешней программы mail или другой.
  func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
    // url содержит URL к файлу, который нужно открыть в приложении

    // Если переданные снаружи данные нормально извлеклись
    if let data = NSData(contentsOf: url) {
      // Тут я сохранял их в файл
      ..
      // Сохраняем данные в файл
      return true
    } else {
      return false
    }
  }

Правда ещё в Plist приложения нужно прописать кое, что
Ответ написан
Комментировать
briahas
@briahas
ObjC, Swift, Python
Вариантов несколько: (перевод с другого сайта)

1)Чтобы получить файлы, отправленные в ваше приложение с помощью AirDrop, сделайте следующее:
- В Xcode объявите поддержку типов документов, которые ваше приложение способно открыть.
- В вашем делегате приложения реализуйте application:openURL:sourceApplication:annotation: метод.

Используйте этот метод для получения данных, которые были отправлены другим приложением. Вкладка «Info» вашего проекта XCode содержит раздел «Document Types» для указания типов документов, поддерживаемых вашим приложением. Как минимум, вы должны указать имя для вашего типа документа и один или несколько UTI, которые представляют тип данных. Например, чтобы объявить поддержку файлов PNG, вы должны включить public.png в качестве строки UTI. iOS использует указанные UTI, чтобы определить, имеет ли ваше приложение право открывать данный документ.

2) Через Custom URL Schemes
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы