2012-05-09 187 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]; 
相關問題