2012-05-09 14 views
17

Estoy trabajando en la función de registro. En esta característica, cuando el usuario crea una cuenta con éxito. Le estoy pidiendo que active su cuenta. Quiero abrir la aplicación de correo de iphone si el usuario dice sí. ahora mi pregunta es simple ¿cómo abrir la aplicación de correo desde mi propia aplicación?¿Cómo abrir la aplicación iphone mail desde mi propia aplicación?

+0

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

+1

Hay una excelente respuesta [aquí] (http: // stackoverflow. com/a/24953719/2547229) que enlaza con [este artículo] (https://medium.com/@vijayssundaram/how-to-deep-link-to-ios-7-mail-6c212bc79bd9). Puede abrir directamente la aplicación, e incluso puede abrir un correo electrónico específico (siempre que Apple no elimine la API, de todos modos). – Benjohn

+0

Si alguien quisiera abrir el correo electrónico de redacción dentro de la aplicación http://stackoverflow.com/questions/4862523/objective-c-send-email-without-leaving-app – andi

Respuesta

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

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

Exactamente lo que estaba buscando, ¡gracias! Solo para tu información, tu código tiene un error semántico. Creo que quisiste decir 'NSString * url = [URLEMail stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];' – dooleyo

+0

@dooleyo oh sí, tienes razón, typo :) – adali

+0

¿Algún consejo sobre cómo probar esto en el simulador? –

12

Pruebe esto.

-(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

no funciona :( y no quiero enviar un correo electrónico Quiero consultar el correo electrónico eso es yi quiere abrir la aplicación de correo nativo de iphone –

+0

Lo siento, eso no es posible. –

+0

solo error menor, esta es la cadena NSString * destinatarios = @ "mailto: [email protected]? subject = subjecthere"; – freelancer

4

Ahoy!

Lo largo y lo corto es; no puedes

Puede crear una vista de redacción de correo electrónico con el fin de enviar correos electrónicos (consulte MFMailComposeViewController), pero no puede abrir aplicaciones arbitrariamente sin un propósito.

ver este post anterior de aclaración: Launch an app from within another (iPhone)

Realmente sin embargo, que no es mucho esfuerzo para que el usuario cierre la aplicación y el correo abierto, así que no preocuparse demasiado acerca de todos modos.

2

stringByAddingPercentEscapesUsingEncoding y openURL están en desuso.

Ahora use esto:

#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]; 
Cuestiones relacionadas