2012-05-09 15 views
17

sto lavorando su funzionalità di registrazione. In questa funzione quando l'utente crea l'account con successo. gli sto chiedendo di attivare il suo account. voglio aprire l'applicazione di posta di iphone se l'utente dice di sì. ora la mia domanda è semplice come aprire l'applicazione di posta dalla mia applicazione?Come aprire l'applicazione di posta per iphone dalla mia applicazione?

+0

http://stackoverflow.com/questions/1942689/iphone-email-app-launch-url –

+1

C'è una risposta eccellente [qui] (http: // StackOverflow. it/a/24953719/2547229) che rimanda a [questo articolo] (https://medium.com/@vijayssundaram/how-to-deep-link-to-ios-7-mail-6c212bc79bd9). Puoi aprire direttamente l'app e puoi persino aprire un'e-mail specifica (a condizione che Apple non rimuova l'API, comunque). – Benjohn

+0

Se qualcuno vorrebbe aprire la mail di composizione all'interno dell'app http://stackoverflow.com/questions/4862523/objective-c-send-email-without-leaving-app – andi

risposta

46
#define URLEMail @"mailto:[email protected]?subject=title&body=content" 

NSString *url = [URLEMail stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding ]; 
[[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]]; 
+0

Esattamente quello che stavo cercando, grazie! Solo FYI, il tuo codice ha un errore semantico. Penso che intendevi dire 'NSString * url = [URLEMail stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];' – dooleyo

+0

@dooleyo oh sì, hai ragione, errore di battitura :) – adali

+0

Qualche consiglio su come provare questo nel simulatore? –

12

Provalo.

-(void)launchMailAppOnDevice 
{ 
    NSString *recipients = @"mailto:[email protected]?subject=subjecthere"; 
    NSString *body = @"&body=bodyHere"; 

    NSString *email = [NSString stringWithFormat:@"%@%@", recipients, body]; 
    email = [email stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:email]]; 
} 
+0

non funziona :( e io non sono desidera inviare e-mail voglio controllare la posta elettronica i thats yi vogliono aperta applicazione di posta nativo di iPhone –

+0

Siamo spiacenti, questo non è possibile. –

+0

solo piccolo errore, questo è giusto stringa NSString * destinatari = @ "mailto: [email protected]? subject = subjecthere"; – freelancer

4

Ahoy!

Il lungo e breve è; non puoi

È possibile creare una vista di composizione e-mail allo scopo di inviare e-mail (vedere MFMailComposeViewController), ma non è possibile aprire le applicazioni arbitrariamente senza uno scopo.

Vedi questo precedente post di chiarimento: Launch an app from within another (iPhone)

realtà, però, non è molto sforzo per l'utente di chiudere l'app e aperta posta in modo da non preoccuparsi troppo comunque.

2

stringByAddingPercentEscapesUsingEncoding e openURL sono deprecati.

Ora usare questo:

#define URLEMail @"mailto:[email protected]?subject=title&body=content" 

NSString * encodedString = [URLEMail stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]]; 

UIApplication *application = [UIApplication sharedApplication]; 
    [application openURL:[NSURL URLWithString: encodedString] options:@{} completionHandler:nil]; 
Problemi correlati