#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:
На самом деле мое требование — из моего приложения я перейду в почтовый ящик. Если там присутствует какое-либо вложение, я должен открыть его с помощью своего приложения. Я не только хочу открыть его с помощью своего приложения, но также хочу сохранить файл в каталоге «Мои документы».
Вы не можете указать почтовому приложению, что делать, поэтому то, что вы хотите, не совсем возможно.
Что вы можете сделать, это добавить свое приложение в меню «Открыть в», поддерживая некоторые типы файлов. Так что, когда пользователь нажимает на вложение, ваше приложение появится в списке приложений.
Вы можете сделать это следующим образом:
-
Добавьте типы файлов, которые может обрабатывать ваше приложение. Следуйте инструкциям здесь: https://developer.apple.com/library/archive/qa/qa1587/_index.html
-
После завершения 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)