【发布时间】:2013-05-25 23:00:31
【问题描述】:
我想在我的应用程序上打开本机邮件客户端并发送以下内容:
NSString *subject = [NSString stringWithFormat:@"%@", self.selectedProposal.title];
NSString *mail = [NSString stringWithFormat:@""];
NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation( self.logoImageView.image )];
CreditCalculatorModel *model = [CreditCalculatorModel tlSharedInstance];
NSString *emailBody = @"";
emailBody = [emailBody stringByAppendingString:[NSString stringWithFormat:@"<p><center><img src='data:image/png;base64,%@'></center></p>", [imageData base64EncodedString]]];
emailBody = [emailBody stringByAppendingFormat:@"<p><center><h4>%@</h4></center></p>", self.selectedProposal.title];
emailBody = [emailBody stringByAppendingString:@"<br />"];
emailBody = [emailBody stringByAppendingString:self.amountLabel.text];
emailBody = [emailBody stringByAppendingString:@"<br />"];
emailBody = [emailBody stringByAppendingString:self.initialLabel.text];
emailBody = [emailBody stringByAppendingString:@"<br />"];
emailBody = [emailBody stringByAppendingString:self.creditAmountLabel.text];
emailBody = [emailBody stringByAppendingString:@"<br />"];
emailBody = [emailBody stringByAppendingFormat:@"Процентная ставка: %@", self.rateLabel.text];
emailBody = [emailBody stringByAppendingString:@"<br />"];
emailBody = [emailBody stringByAppendingFormat:@"Эффективная ставка: %@", self.efficientRateLabel.text];
emailBody = [emailBody stringByAppendingString:@"<br />"];
emailBody = [emailBody stringByAppendingFormat:@"Ежемесячный платёж: %@", self.paymentLabel.text];
emailBody = [emailBody stringByAppendingString:@"<br />"];
emailBody = [emailBody stringByAppendingFormat:@"Переплата по кредиту: %@", self.overheadLabel.text];
emailBody = [emailBody stringByAppendingString:@"<br />"];
emailBody = [emailBody stringByAppendingString:@"<br /></h5>График платежей</h5><br />"];
emailBody = [emailBody stringByAppendingString:@"<table border='1'>"];
emailBody = [emailBody stringByAppendingString:@"<tr><td>Месяц</td><td>Задолженность</td><td>Платёж</td></tr>"];
for ( int i = 0; i < model.term; i++ )
{
emailBody = [emailBody stringByAppendingFormat:@"<tr><td>%d</td><td>%@ р.</td><td>%@ р.</td></tr>",
i + 1,
[self.unicomDecimalNumberFormatter stringFromNumber:@((int) [CreditCalculatorModel deptForMonth:i
withRate:[self.selectedProposal.rate doubleValue]/100
andAmount:model.amount
andTerm:model.term
andInitial:model.initial
andAnnuity:!self.selectedProposal.payment_type])],
[self.unicomDecimalNumberFormatter stringFromNumber:@((int) [CreditCalculatorModel paymentForMonth:i
withRate:[self.selectedProposal.rate doubleValue]/100
andAmount:model.amount
andTerm:model.term
andInitial:model.initial
andAnnuity:!self.selectedProposal.payment_type])]
];
}
emailBody = [emailBody stringByAppendingString:@"</table>"];
NSString *recipients = @"mailto:?to=";
NSString *subjectMessage = [NSString stringWithFormat:@"&subject=%@", subject];
NSString *bodyMessage = [NSString stringWithFormat:@"&body=%@", emailBody];
NSString *email = [NSString stringWithFormat:@"%@%@%@", recipients, subjectMessage, bodyMessage];
email = [email stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:email]];
一切都很好,除了图像表示。它不显示。在图像的地方只出现一个小的空矩形。 图像表示在电话选项中处于打开状态。 而且我不能用 MFMailComposeViewController 完成这项任务。 感谢您的帮助
【问题讨论】:
-
为什么您认为移动 Safari 浏览器会在显示您的电子邮件消息时自动解码您的 Base64Encoded 图像?
-
为什么不能使用
MFMailComposeViewController? -
我不能使用MFMailComposeController,因为我在右边的SideBar控制器上初始化了这个动作,显然大小有很多问题。
-
Michael Dautermann,据我所知,基本上,本地邮件和 safari 使用 Base64Encoded 图像进行表示。实际上,我可以在 Safari 中打开我的图片链接,一切正常。
-
是
imageData=nil还是[imageData base64EncodedString]=nil有机会吗?