Вложения с использованием схемы электронной почты в iOS - PullRequest
2 голосов
/ 12 января 2012

Я внедряю приложение для iphone (iOS 4.2), откуда я хотел бы запустить почтовый клиент для отправки сообщений с вложениями. Я мог бы эффективно использовать схемы URI в сочетании с классом NSURL для запуска приложения электронной почты, но мне было интересно, можно ли прикреплять изображения. Я пытался с mailto: whoever@wherever.org? Subject = sthg & body = sthgelse & attachment = / path / to / file, но вложения не включены. Я знаю, что приложения для iphone находятся в «песочнице», поэтому возможно, что утилита электронной почты не смогла получить доступ к пути к моему изображению, так как он находится в моем комплекте приложений. С другой стороны, я рассматривал возможность администрирования моих изображений с помощью менеджера фотографий. (1) Есть ли способ включить вложения таким образом? (2) Если да, можно ли ссылаться на изображения из моего приложения или из фото-клиента? Я не смог найти аргумент вложения в RFC mailto, но, возможно, Apple предоставила какой-то способ добиться этого.

Заранее спасибо за помощь,

Luis

Ответы [ 3 ]

3 голосов
/ 13 января 2012

MFMailComposeViewController сможет сделать это, пример использования приведен ниже: не забудьте добавить MessageUI.framework

MFMailComposeViewController *email = [[MFMailComposeViewController alloc] init];
email.mailComposeDelegate = self;
[email setSubject:@"Whatever"];

// Set up recipients
NSArray recipients = [NSArray arrayWithObject:@"whoever@wherever.org"]; 

[email setToRecipients:recipients];


// Attach an image to the email
UIImage *attachment = ...;
NSData *data = UIImagePNGRepresentation(attachment);
[email addAttachmentData:myData mimeType:@"image/png" fileName:@"ok.png"];

// Fill out the email body text
NSString *emailBody = @"test mail";
[email setMessageBody:emailBody isHTML:NO];
[self presentModalViewController:picker animated:YES];

[email release];
0 голосов
/ 21 января 2015

Если у вас нет учетной записи, MFMailComposeViewController просто падает. Да, вы можете сначала позвонить canSendMail с результатом НЕТ (!), Что дальше? Ответ - используйте «mailto:». Откроется диалоговое окно для создания учетной записи.

0 голосов
/ 12 января 2012

Вместо использования схемы URL mailto: следует использовать MFMailComposeViewController , который позволяет добавлять вложения.Он также имеет дополнительное преимущество, заключающееся в том, что использование не покинет ваше приложение.

...