2015-04-02 14 views
9

Sto creando un'applicazione iOS con una funzione di reimpostazione della password che invia un'email all'utente. Dopo aver inviato l'e-mail voglio mostrare un UIAlertController all'utente chiedendo loro se vorrebbero aprire l'applicazione di posta.Come avviare l'app di posta iOS in Swift?

Ho visto vari post qui lungo le linee di:

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

Questo funziona, ma purtroppo si inizia un nuovo messaggio, che non è quello che voglio. Voglio solo avviare l'applicazione in modo che l'utente possa vedere la loro casella di posta.

risposta

21

Non testato me stesso, ma forse questa risposta vi aiuterà a:

Apparentemente Mail supporta un secondo schema URL message:// che (suppongo) permette di aprire un messaggio specifico se è stato prelevato dalla vostra applicazione. Se non si fornisce un messaggio URL completo, sarà solo aperta Mail:

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

Tratto da: Launch Apple Mail App from within my own App?

+0

Esattamente quello che stavo cercando! Grazie per l'aiuto –

+0

unverschaemt, dato che questa è una domanda Swift, saresti disturbato se avessi modificato la tua risposta in Swift? – nhgrif

+0

non esitate a modificare :) – dehlen

1

Il Swift 3.0.1 modo di appena aprendo l'applicazione Posta va come segue :

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

come "dehlen" correttamente affermato, utilizzando lo schema di message:// si aprirà solo l'applicazione di posta elettronica, se non viene fornito ulteriori informazioni.