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