web-dev-qa-db-ja.com

自分のアプリケーションからiphoneメールアプリケーションを開く方法

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

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

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

これを試してみてください。

-(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]];
}
12
Mick MacCallum

アホイ!

それの長いと短いです。できません。

電子メールを送信する目的で電子メール作成ビューを作成できます( MFMailComposeViewController を参照)。ただし、目的なしにアプリケーションを勝手に開くことはできません。

説明については、この前の投稿を参照してください: 別の(iPhone)内からアプリを起動する

実際、ユーザーがアプリを閉じてメールを開くのはそれほど難しいことではないので、とにかくあまり心配する必要はありません。

4
CaptainRedmuff

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];
4