2015-04-02 7 views
9

Ich erstelle eine iOS-Anwendung mit einer Funktion zum Zurücksetzen des Kennworts, die eine E-Mail an den Benutzer sendet. Nach dem Senden der E-Mail möchte ich dem Benutzer eine UIAlertController anzeigen, in der er gefragt wird, ob er die E-Mail-Anwendung öffnen möchte.Wie starte ich die iOS Mail App in Swift?

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

Das funktioniert aber leider startet er eine neue Nachricht, die nicht das, was ich will:

Ich habe von entlang der Linien hier verschiedene Posten gesehen. Ich möchte nur die Anwendung starten, damit der Benutzer seinen Posteingang sehen kann.

Antwort

21

selbst nicht getestet, aber vielleicht diese Antwort wird Ihnen helfen:

Anscheinend unterstützt E-Mail ein zweites URL-Schema message:// die (nehme ich an) können Sie eine bestimmte Nachricht öffnen, wenn es von Ihrer Anwendung geholt wurde. Wenn Sie nicht über eine vollständige Nachricht url bieten, wird es nur offen Mail:

let mailURL = NSURL(string: "message://")! 
if UIApplication.sharedApplication().canOpenURL(mailURL) { 
    UIApplication.sharedApplication().openURL(mailURL) 
} 

Entnommen: Launch Apple Mail App from within my own App?

+0

Genau das, was ich gesucht habe! Danke für die Hilfe –

+0

unverschämt, da es sich um eine Swift-Frage handelt, würdest du gestört sein, wenn ich deine Antwort in Swift bearbeitet hätte? – nhgrif

+0

Fühlen Sie sich frei zu bearbeiten :) – dehlen

1

Die Swift 3.0.1 Art und Weise nur die Mail-App öffnen geht wie folgt :

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

As "Dehlen" korrekt angegeben, nur das message:// Schema verwendet, den Mail-App öffnen, wenn keine weiteren Informationen zur Verfügung gestellt.