Как запустить приложение iOS mail в Swift?


Я создаю приложение iOS с функцией сброса пароля, которое отправляет пользователю электронное письмо. После отправки сообщения электронной почты я хочу показать UIAlertController пользователю, спрашивая его, не хочет ли он открыть почтовое приложение.

Я видел здесь различные сообщения по следующим направлениям:

let url = NSURL(string: "mailto:")
UIApplication.sharedApplication().openURL(url!)

Это работает, но, к сожалению, он начинает новое сообщение, которое не является тем, что я хочу. Я только хочу запустить приложение, чтобы пользователь мог видеть свой почтовый ящик.

2 9

2 ответа:

Не проверял себя, но, возможно, этот ответ поможет вам:

По-видимому, Почта поддерживает вторую схему url message://, которая (я полагаю) позволяет вам открыть определенное сообщение, если оно было получено вашим приложением. Если вы не предоставите полный url-адрес сообщения, он просто откроет Mail:
let mailURL = NSURL(string: "message://")!
if UIApplication.sharedApplication().canOpenURL(mailURL) {
    UIApplication.sharedApplication().openURL(mailURL)
}

Взято из: запуск приложения Apple Mail из моего собственного приложения?

Способ Swift 3.0.1 простого открытия почтового приложения выглядит следующим образом:

private func openMailClient() {
    let mailURL = URL(string: "message://")!
    if UIApplication.shared.canOpenURL(mailURL) {
        UIApplication.shared.openURL(mailURL)
    }
}

Как правильно сказал "dehlen", использование схемы message:// откроет приложение mail только в том случае, если не будет предоставлена дополнительная информация.