Откройте любое вложение электронной почты в приложении ios

#swift

#swift

Вопрос:

Тип документаЯ хочу открывать любые вложения электронной почты в своем приложении iOS. Означает, что из моего приложения для iOS я хочу открыть электронную почту, и если есть какие-либо вложения (например, pdf), я хочу открыть это вложение с помощью своего приложения.Я могу открыть приложение электронной почты из своего приложения с помощью следующего кода

 if let mailURL = URL(string: "message:") {
           if UIApplication.shared.canOpenURL(mailURL) {
               UIApplication.shared.open(mailURL, options: [:], completionHandler: nil)
           }
       }

  

После этого, как открыть любые вложения внутри приложения iOS. может кто-нибудь мне помочь. Могу ли я сохранить вложения в свой каталог документов?

Комментарии:

1. Вы имеете в виду, что хотите добавить свое приложение в список приложений, которые Mail показывает вам при нажатии на вложение?

2. На самом деле мое требование — из моего приложения я перейду в почтовый ящик. Если там присутствует какое-либо вложение, я должен открыть его с помощью своего приложения. Я не только хочу открыть его с помощью своего приложения, но также хочу сохранить файл в каталоге «Мои документы».

Ответ №1:

На самом деле мое требование — из моего приложения я перейду в почтовый ящик. Если там присутствует какое-либо вложение, я должен открыть его с помощью своего приложения. Я не только хочу открыть его с помощью своего приложения, но также хочу сохранить файл в каталоге «Мои документы».

Вы не можете указать почтовому приложению, что делать, поэтому то, что вы хотите, не совсем возможно.

Что вы можете сделать, это добавить свое приложение в меню «Открыть в», поддерживая некоторые типы файлов. Так что, когда пользователь нажимает на вложение, ваше приложение появится в списке приложений.

Вы можете сделать это следующим образом:

  1. Добавьте типы файлов, которые может обрабатывать ваше приложение. Следуйте инструкциям здесь: https://developer.apple.com/library/archive/qa/qa1587/_index.html

  2. После завершения 1. добавьте следующую функцию в свой AppDelegate:

 func application(application: UIApplication, handleOpenURL url: NSURL) -> Bool {
       // do what you want with file
}
  

Чтобы сохранить файл в каталоге документов вашего приложения, вы можете посмотреть, как это делается здесь:
https://programmingwithswift.com/save-file-to-documents-directory-with-swift /

Комментарии:

1. Привет @Moucheg. я не могу найти унифицированный идентификатор типа (UTI) для типа документа. я добавил снимок экрана в свой вопрос, можете ли вы изучить его и сообщить мне, где я делаю неправильно.

2. Спасибо @Moucheg за ваш ответ. Теперь он работает нормально. Ранее возникла проблема с настройкой документа. Но я решил это.

3. @TapanRaut Рад, что вы смогли разобраться (вчера был занят, не было времени посетить SO)