How to set email attachment file name using UIActivityViewController email sharing

I am trying to transfer a movie clip image using the UIAcitivityViewController email sharing.

Below is my code.

ALAssetRepresentation *rep = [asset defaultRepresentation]; CGImageRef iref = [rep fullScreenImage]; UIImage *largeimage = [UIImage imageWithCGImage:iref scale:[rep scale] orientation:UIImageOrientationUp]; NSData *imageData = UIImageJPEGRepresentation(largeimage, 1.0); NSArray *activityItems; if (largeimage != nil) { activityItems = @[imageData]; } UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil]; [self presentViewController:activityController animated:YES completion:nil]; 

I do not know how to set the image file name of the attached file. Any tips?

+6
source share
4 answers

try it...

 NSString *text = @"write text here"; UIImage *image = [UIImage imageNamed:@"your image name"]; NSArray *activityItems = [NSArray arrayWithObjects:text,image , nil]; UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems: activityItems applicationActivities:nil]; [self presentViewController:activityController animated:YES completion:nil]; 
0
source

Try saving the image locally and then send the file url, it will show your image exactly.

 ALAssetRepresentation *rep = [asset defaultRepresentation]; CGImageRef iref = [rep fullScreenImage]; UIImage *largeimage = [UIImage imageWithCGImage:iref scale:[rep scale] orientation:UIImageOrientationUp]; NSData *imageData = UIImageJPEGRepresentation(largeimage, 1.0); // Store imageData locally NSString* documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; NSString* filePath = [documentsPath stringByAppendingPathComponent:"@abc.jpg"]; [imageData writeToFile:filePath atomically:YES]; NSURL *fileUrl = [NSURL fileURLWithPath:filePath]; UIActivityViewController* activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[fileUrl] applicationActivities:nil]; [self.navigationController presentViewController:activityViewController animated:YES completion:^{}]; 
+5
source

You can just make your own, like this, for example, that you can find at this link: https://github.com/nferocious76/NFActivityModel just play with it can also add recipients ccc, cc.

 NSURL *fileURL = [NSURL URLWithString:pdfFileURL]; NSData *pdfData = [NSData dataWithContentsOfFile:pdfFileURL]; NFActivityShareMailIAttachment *shareMailAttachment = [[NFActivityShareMailIAttachment alloc] initWithAttachmentData:pdfData attachmentDataMimeType:@"application/pdf" attachmentDataFilename:pdfFilename]; NSString *taskName = self.reportInfo[@"TaskName"] ?: @"PDF Share"; NSString *sharingUser = self.reportInfo[@"SharingUser"] ?: @"JV User"; // define ShareMail item NSString *mailBody = @"ShareMail Body"; NFActivityShareMailItem *activityShareMailItem = [[NFActivityShareMailItem alloc] initWithShareMailSubject:taskName mailBody:mailBody isHTML:NO]; activityShareMailItem.attachments = @[shareMailAttachment]; // create ShareMail with the base view controller NFActivityShareMail *shareMail = [[NFActivityShareMail alloc] initWithViewController:self]; UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[pdfData, fileURL, activityShareMailItem] applicationActivities:@[shareMail]]; activityViewController.excludedActivityTypes = @[UIActivityTypeMail]; // present to user [self presentViewController:activityViewController animated:YES completion:nil]; 
0
source

try this code in your sharing method.

 // add all objects in array which you want to attach. NSArray *dataToShare =[[NSArray alloc] initWithObjects:title.text,notes.text,image,nil]; UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:dataToShare applicationActivities:nil]; [self presentViewController:activityVC animated:YES completion:^{ }]; 
-1
source

All Articles