2012-05-09 12 views
17

私はサインアップ機能に取り組んでいます。この機能では、ユーザーがアカウントを正常に作成したとき。私は彼または彼女にアカウントを有効にするように頼んでいます。 ユーザーがyesと答えるとiphoneのメールアプリケーションを開きたい 今私の質問は、自分のアプリケーションからメールアプリケーションを開く方法が簡単ですか?自分のアプリケーションからiphoneメールアプリケーションを開くには?

+0

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

+1

[こちら]優れた答えがあります(のhttp://のstackoverflow。 [この記事](https://medium.com/@vijayssundaram/how-to-deep-link-to-ios-7-mail-6c212bc79bd9)にリンクしているウェブサイト(com/a/24953719/2547229)アプリケーションを直接開くこともできますし、特定の電子メールを開くこともできます(ただし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ああ、そうだよ、typo :) – 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

が動作しない:( と私は電子メールを送信したくない私は電子メールを確認したいと思う thats yiはiphoneのオープンネイティブメールアプリをしたいです –

+0

申し訳ありませんが、それは不可能です –

+0

ちょっとミス、これは正しい文字列ですNSString *受信者= @ "mailto:[email protected]?subject = subjecthere"; – freelancer

4

アホイ!

長くて短いです。できません。

メールを送信する目的でメール作成ビューを作成することはできますが(MFMailComposeViewController参照)、目的を意識せずに任意にアプリケーションを開くことはできません。

明確化のために、この前の記事を参照してください:本当にLaunch an app from within another (iPhone)

をしかし、それは私がとにかくそれについてはあまり心配しないように、あなたのアプリと開いているメールを閉鎖するためのユーザーのために多くの努力ではありません。

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]; 
関連する問題