2009-09-03 5 views
2

Quelqu'un a-t-il déjà intégré le programme Email de l'iPhone dans votre propre application? Laissez-moi essayer de simplifier cela. Tap Tap Revenge vous permet de "Défier un ami". Lorsque vous choisissez de le faire, ils ouvrent le programme de messagerie électronique standard de l'iPhone (s'ils l'ont imité, il semble sacrément bon), au sein de l'application avec des données pré-remplies. Tout ce que vous avez à faire est de sélectionner un ami à partir de vos contacts et appuyez sur envoyer. Vous ne quittez jamais l'application Tap Tap Revenge.iPhone - De toute façon pour obtenir l'application de messagerie de l'iPhone Inside Your Own App?

Des idées comment cela est fait?

Répondre

5

Vous devez inclure les MessageUI.framework dans votre projet, et à l'intérieur de votre fichier d'en-tête, vous devez définir le délégué:

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

@property (nonatomic, retain) MFMailComposeViewController *email; 

Une fois que vous faites cela, vous avez quelques méthodes de délégué à l'intérieur de votre dossier de mise en œuvre dont vous avez besoin d'inclure (vous devriez vérifier le résultat, mais je suis en train de garder le code aussi peu que nécessaire):

@synthesize email; 

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

Où que vous voulez utiliser, vous devez initialiser et configurer comme ceci:

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]; 
+0

Merci, cela va me diriger dans la bonne direction et me lancer! Merci beaucoup. – bbullis21

0

Il y a deux réponses à cela. Pour les applications qui doivent prendre en charge iPhone OS avant la version 3.0, la seule solution consiste à créer un composeur de message personnalisé. Ou vous pouvez jeter un oeil à l'élément construit par Joe Hewitt qui a écrit l'application iPhone Facebook.

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

Avec iPhone SDK 3.0 vous pouvez utiliser l'interface utilisateur du message électronique compositeur tout droit sorti si la boîte en utilisant la MessageUI.framework comme expliqué ci-dessus.

+0

Merci pour le lien. – bbullis21

+0

lien ne fonctionne pas! – MaKo

3

Suite à une grande réponse de Garett, vous devriez l'avertissement:

'MFMailComposeViewController' ne peut pas répondre à '-setMessageBody:'

ajouter ISHTML: si la ligne complète se lit comme:

[mail setMessageBody: @ "Ceci est le corps" isHTML: NO];

0

messagecomposer est le chemin à parcourir! mails et sms à l'intérieur de l'application, à partir d'iOS 3.1. need sdk 4

Questions connexes