iPhone - 无论如何在自己的应用程序中获取iPhone电子邮件应用程序?

时间:2009-09-03 23:36:25

标签: iphone email

是否有人在您自己的应用程序中嵌入了iPhone的电子邮件程序?

让我试着简化一下。 Tap Tap Revenge让你“挑战一个朋友”。当你选择这样做时,他们打开标准的iPhone电子邮件程序(如果他们模仿它,它看起来很好),在具有预先填充数据的应用程序中。您所要做的就是从联系人中选择一位朋友,然后按发送。你永远不会离开Tap Tap Revenge App。

如何做到这一点?

4 个答案:

答案 0 :(得分:5)

您需要将MessageUI.framework包含到项目中,并且在头文件中需要设置委托:

#import <MessageUI/MessageUI.h>
@interface RootViewController : UIViewController <MFMailComposeViewControllerDelegate> {
    MFMailComposeViewController *email;
}

@property (nonatomic, retain) MFMailComposeViewController *email;

一旦你这样做,你需要在你的实现文件中包含一些委托方法(你应该检查结果,但我试图保留尽可能少的代码):

@synthesize email;

- (void) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {
    [email dismissModalViewControllerAnimated:YES];
} 

无论您想在何处使用此功能,都需要进行初始化并将其设置为:

email = [[MFMailComposeViewController alloc] init];
email.mailComposeDelegate = self;

// Subject
[email setSubject:@"Testing"];

// Optional Attachments
NSData *artwork = UIImagePNGRepresentation([UIImage imageNamed:@"albumart.png"]);
[email addAttachmentData:artwork mimeType:@"image/png" fileName:@"albumart.png"];

// Body
[email setMessageBody:@"This is the body"];

// Present it
[self presentModalViewController:email animated:YES];

答案 1 :(得分:3)

除了Garett的出色回应之外,你是否应该收到警告:

'MFMailComposeViewController'可能无法响应'-setMessageBody:'

添加isHTML:完整的行如下:

[mail setMessageBody:@“这是正文”isHTML:NO];

答案 2 :(得分:0)

有两个答案。对于应该支持3.0之前的iPhone OS的应用程序,唯一的方法是构建自定义消息编写器。或者你可能想看一下编写Facebook iPhone应用程序的Joe Hewitt构建的组件。

http://github.com/joehewitt/three20/blob/master/src/Three20/TTMessageController.h

使用iPhone SDK 3.0,如果使用MessageUI.framework的方框,您可以直接使用邮件消息编辑器UI。

答案 3 :(得分:0)

messagecomposer是要走的路!应用程序内的邮件和短信,从iOS 3.1运行。需要sdk 4