0

我有一个奇怪的问题,下面的代码在 IOS5 设备,所有模拟器中都可以正常工作,但在 IOS6 设备中失败。我得到一个空白视图来代替图像。

要求:需要在邮件中添加图像。

NSString *imageName = @"classroom_tile.png"; 
imagePath = [[NSBundle mainBundle]bundlePath];
imagePath = [imagePath stringByAppendingPathComponent:[NSString   stringWithFormat:@"%@",imageName]];
imagePath = [@"file:///" stringByAppendingString:imagePath];

NSString *formatedUrl = [NSString stringWithFormat:@"</br><table border =\"0\"><tr><td></td><th>%@</th></tr><tr><td><img src= \'%@\' width=200 height=150></td></tr></table>",sometext,imagePath];
[mailComposer setMessageBody:formatedUrl isHTML:YES];

请建议。

谢谢和问候, 阿尼尔

4

2 回答 2

0

您尝试做的事情从未得到支持。将图像添加到电子邮件中的唯一有效方法是将图像添加为附件。但即便如此,您也无法在邮件正文中引用图像附件。

在模拟器中起作用的东西与这样的事情无关,因为您实际上无法在模拟器中发送电子邮件。让我问一下 - 在 iOS 5 设备上运行它时,从应用程序发送的接收到的电子邮件是否实际显示图像,还是仅在应用程序的邮件编辑器中正确显示?如果从应用程序发送并在用户计算机上的某些电子邮件客户端中打开的此类电子邮件显示图像,我会感到非常惊讶。

编辑:事实证明,这在 iOS 5 下确实有效,但在 iOS 6 下无效。我很惊讶。我做了自己的快速测试。在 iOS 5.1 下,发送一封带有此类图像引用的电子邮件到 iOS 设备上的本地文件实际上确实会与电子邮件一起发送,并且确实出现在他们计算机上的客户端电子邮件程序中。当应用程序在 iOS 6 下运行时,图像不会出现在应用程序的邮件编辑器中,也不会出现在收到的电子邮件中。所以至少这是一致的。

另一个小旁注。这一行:

imagePath = [imagePath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",imageName]];

应该:

imagePath = [imagePath stringByAppendingPathComponent:imageName];

stringWithFormat:除非您实际使用字符串格式,否则请勿使用。此外,不需要创建额外的NSString对象。

此外,这是获取资源包中文件路径的更好方法:

NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"classroom_tile" ofType:@"png"];

那一行将替换您发布的前三行。

最后一点。使用 HTML 电子邮件时,请包含<html><body>标记。

于 2012-10-24T06:16:04.567 回答
0
This is not possible with the current MessageUI API: the MSMessageComposeViewController doesn't accept attachments like the MFMailComposeViewController does.

The only way to do this currently is to use an external service that allows you to send mms via a REST call for example.

GSMA defines a REST specification for exactly this purpose:     http://www.gsmworld.com/oneapi/reference_documentation-version_1.html (multiple pdf's on this page)

Try to find a local service provider that implements this specification and you're good to go.

Just to add the direct wiki link to the OneAPI MMS spec:     http://gsma.securespsite.com/access/Access%20API%20Wiki/MMS%20RESTful%20API.aspx and a link to the PHP/Java sandbox https://github.com/OneAPI/GSMA-OneAPI where MMS can be tested locally . Cheers.
于 2012-12-12T05:56:06.797 回答