当我提出一条新消息"手动我会在文本编辑区域的左侧看到一个摄像头图标。当我使用MFMessageComposeViewController时,它不会显示此图标,这意味着您无法插入图像。我知道这可以做到,因为制作txtAgif的人可以做到。一个微妙的区别是盖子已打开。这可能是他们如何使其发挥作用的线索。
我知道MFMessageComposeViewController不允许您以编程方式插入图像,这就是为什么我要复制到UIPasteboard技巧。这部分完美无缺。
同样的问题被问到here和here这个问题没有得到解决,除了"它无法完成。"
这是我的第一篇文章,所以我没有足够高的排名来为其他问题发帖做出贡献。
他们是怎么做到的? MFMessageComposeViewController是否有技巧或是否使用完全不同的东西?
答案 0 :(得分:4)
我已通过以下代码解决了这个问题:
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
pasteboard.persistent = YES;
NSString *imagefile =app.strimagepath;
///
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:imagefile];
if (fileExists)
{
NSData *data = UIImagePNGRepresentation([UIImage imageWithContentsOfFile:imagefile]);
pasteboard.image = [UIImage imageWithData:data];
}
NSString *phoneToCall = @"sms: 123-456-7890";
NSString *phoneToCallEncoded = [phoneToCall stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSURL *url = [[NSURL alloc] initWithString:phoneToCallEncoded];
[[UIApplication sharedApplication] openURL:url];
这里app.strimgPath是存储在文档目录中的图像路径。当MessageView打开时。 Longpress并单击粘贴并将粘贴消息。
答案 1 :(得分:3)
我找到了答案!使用UIApplication sharedApplication启动空白消息,而MFMessageComposeViewController则不行。因为我正在使用UIPasteboard,所以我不需要将物品插入体内。
NSString *phoneToCall = @"sms: 123-456-7890";
NSString *phoneToCallEncoded = [phoneToCall stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSURL *url = [[NSURL alloc] initWithString:phoneToCallEncoded];
[[UIApplication sharedApplication] openURL:url];
这是MFMessageComposeViewController中的一个错误,因为它们为什么允许将图像插入到一个而不是另一个中。我会插入一张图片,但我不被允许,因为我没有足够的声誉。