2 votes

Joindre une image à un courriel

Je me demandais s'il était possible de permettre à l'utilisateur de sélectionner une image dans le rouleau de l'appareil photo, puis de la joindre à un courriel ?

Voici le code que j'ai maintenant :

-(IBAction) openEmail {

MFMailComposeViewController *mailComposer = [[MFMailComposeViewController alloc] init];
[mailComposer setMailComposeDelegate:self];
if ([MFMailComposeViewController canSendMail]) {
    [mailComposer setToRecipients:[NSArray arrayWithObjects:@"TPsecondary_Example@email.com", nil]];
    [mailComposer setSubject:@"Learning Trail Submission"];
    [mailComposer setMessageBody:emailbody isHTML:NO];
    [mailComposer setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];

    NSString *path = [[NSBundle mainBundle] pathForResource:@"Answer" ofType:@"plist"];
    NSData *myData = [NSData dataWithContentsOfFile:path];
    [mailComposer addAttachmentData:myData mimeType:@"application/xml" fileName:@"Answer.plist"];

    [self presentModalViewController:mailComposer animated:YES];
}
}

1voto

0x7fffffff Points 40133

C'est sûr !

Dans votre fichier .h, ajoutez ces délégués et déclarez un fichier UIImage nommé selectedImage.

<UIImagePickerControllerDelegate, UINavigationControllerDelegate>

Ensuite, dans votre .m, vous pouvez ajouter ce qui suit.

Lien -(IBAction)openImagePicker:(id)sender sur le bouton que vous voulez lancer le processus.

- (IBAction)openImagePicker:(id)sender
{

    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary])
    {
        UIImagePickerController *imagePicker =
        [[UIImagePickerController alloc] init];
        imagePicker.delegate = self;
        imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
        imagePicker.allowsEditing = NO;
        [self presentViewController:imagePicker animated:YES completion:nil];
    }
}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    selectedImage = [info objectForKey:UIImagePickerControllerOriginalImage];
    [self dismissViewControllerAnimated:YES completion:^{
        [self openEmail];
    }];

}

-(IBAction) openEmail {

    MFMailComposeViewController *mailComposer = [[MFMailComposeViewController alloc] init];
    [mailComposer setMailComposeDelegate:self];
    if ([MFMailComposeViewController canSendMail]) {
        [mailComposer setToRecipients:[NSArray arrayWithObjects:@"TPsecondary_Example@email.com", nil]];
        [mailComposer setSubject:@"Learning Trail Submission"];
        [mailComposer setMessageBody:emailbody isHTML:NO];
        [mailComposer setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];

        NSString *path = [[NSBundle mainBundle] pathForResource:@"Answer" ofType:@"plist"];
        NSData *myData = [NSData dataWithContentsOfFile:path];
        [mailComposer addAttachmentData:myData mimeType:@"application/xml" fileName:@"Answer.plist"];
        NSData *imageData = UIImageJPEGRepresentation(selectedImage, 1.0);
        [mailComposer addAttachmentData:imageData  mimeType:@"image/jpg"   fileName:@"imageTitle"];
        [self presentModalViewController:mailComposer animated:YES];
    }
}

EDIT : Attention, il s'agit d'un exemple très basique qui ne gère pas les événements tels que la sélection par l'utilisateur d'une vidéo au lieu d'une image...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X