2012-05-09 141 views
17

我正在处理注册功能。在此功能中,用户创建帐户成功。我要求他或她启动他的账户。 我想打开iPhone的邮件应用程序,如果用户说是的。 现在我的问题很简单,如何从我自己的应用程序打开邮件应用程序?如何从我自己的应用程序打开iphone邮件应用程序?

+0

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

+1

有一个很好的答案[这里](HTTP://计算器。 com/a/24953719/2547229),链接到[本文](https://medium.com/@vijayssundaram/how-to-deep-link-to-ios-7-mail-6c212bc79bd9)。您可以直接打开应用程序,甚至可以打开特定的电子邮件(只要Apple不删除该API)。 – Benjohn

+0

如果有人想在应用程序中打开撰写电子邮件http://stackoverflow.com/questions/4862523/objective-c-send-email-without-leaving-app – andi

回答

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

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

正是我在找什么,谢谢!只是FYI,你的代码有一个语义错误。我想你的意思是说'NSString * url = [URLEMail stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];' – dooleyo

+0

@dooleyo哦,是的,你是对的,错字:) – adali

+0

如何在模拟器中尝试这个任何提示? –

12

试试看。

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

不能正常工作:( ,我不想发送电子邮件我想查看电子邮件 这就是说你想开放原生邮件应用程序的iphone –

+0

对不起,这是不可能的 –

+0

只是小错误,这是正确的字符串NSString *收件人= @“mailto:[email protected]?subject = subjecthere”; – freelancer

2

stringByAddingPercentEscapesUsingEncoding和openURL已弃用。

现在使用此:

#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]; 
相关问题