通过 UIPasteBoard 在短信中粘贴图像
Posted
技术标签:
【中文标题】通过 UIPasteBoard 在短信中粘贴图像【英文标题】:Pasting image in sms through UIPasteBoard 【发布时间】:2011-04-14 12:56:25 【问题描述】:我正在尝试将我的应用中的一些图像粘贴到 SMS 中。
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
NSString *imagefile = [[NSBundle mainBundle]
pathForResource:@"imagename"]
ofType:@"png"];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:imagefile];
if (fileExists)
UIImage *ui = [[UIImage alloc] initWithContentsOfFile:imagefile];
pasteboard.image = ui;
[ui release];
在调试模式下,我发现该图像确实存在,并且它确实进入了粘贴板(我检查了它我引入了一个带有粘贴板图像的图像视图,这是必要的)。
保存到剪贴板后,我调用
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:"]];
它确实会弹出,但是当我点击那里的“文本字段”时,没有显示粘贴按钮。 有人可以指出我的错误吗? 或者这样做有意义吗?我的意思是,是否可以通过默认 iPhone 消息应用发送图像?
【问题讨论】:
抱歉,兄弟跑题了……但告诉我一件事……可以在短信中粘贴“任何图像”吗?因为你必须在解码端有相同的软件。我的意思是在接收端..对吗?? 我认为这很有趣:我确信 100% 几天前,当我刚刚实施此选项时,它确实有效。弹出默认的 iPhone 消息应用程序后,我正在粘贴图像,它就像一个灰色的框架。我看到它正在工作并且我正在开发其他东西,现在,在测试时,我发现它不起作用。我不确定,我会稍微编辑一下我的 Q。 对不起 Dumoko...但我只是在研究这件事...但我发现...当您收到消息时,您需要解码字符并显示相应的该角色的图像。例如,如果您收到消息 :-) 它是 ':'、'-' 和 ')',然后显示笑脸图像......对于不同的消息,类似的不同情绪。您需要维护该字符集的字符集和相应图像的列表......所以如果接收者端的人没有像你这样的应用程序,那怎么可能......我认为在另一端无法解码... How to attach Image with message via iPhone application? 的可能重复项 【参考方案1】:只有当粘贴板包含您点击的当前对象(此处为文本字段)支持的项目时,才会显示“粘贴”操作。您似乎只将图像添加到粘贴板。文本字段不支持图像。所以“粘贴”动作不会出现。
【讨论】:
【参考方案2】:我有这个工作。我只是使用 setData 为其提供原始数据,然后使用 forPasteboardType 设置数据类型。就在你的下方
if (fileExists)
试试这个
NSData *data = [NSData dataWithContentsOfFile:imagefile];
[pasteboard setData:data forPasteboardType:@"public.png"];
您可以查找不同的 PasteboardType UTI here.
【讨论】:
【参考方案3】:这段代码运行良好:
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"imageName"]];
[[UIPasteboard generalPasteboard] setImage:image];
【讨论】:
以上是关于通过 UIPasteBoard 在短信中粘贴图像的主要内容,如果未能解决你的问题,请参考以下文章
iOS8 自定义键盘 - 复制和粘贴到 UIPasteboard