从 UIPasteboard 获取复制的数据

Posted

技术标签:

【中文标题】从 UIPasteboard 获取复制的数据【英文标题】:Get copied data from UIPasteboard 【发布时间】:2010-07-22 10:03:43 【问题描述】:

我已经使用剪贴板从UIwebView 复制了图像,我想邮寄它。为此,我使用通用粘贴板获取数据,但检索数据时出现问题。当我检查粘贴板当前数据时,它说它有 Apple Web Archive 粘贴板类型 数据,如何阅读。这是我检索文本的代码。

UIPasteboard* pasteboard = [UIPasteboard generalPasteboard];
NSArray* array = [pasteboard pasteboardTypes];
for (NSString* type in array) 
    NSLog(@"%@",type);

NSString* item = @"Apple Web Archive pasteboard type";
NSData* val = [pasteboard dataForPasteboardType:item];

我尝试使用这些数据创建 UIImage,但没有成功。

【问题讨论】:

【参考方案1】:

我不明白你说的邮寄是什么意思?您可以将网页图像副本直接粘贴到邮件应用程序中,它将显示为图像。

如果需要手动,您可以从 Apple Web Archive 粘贴板类型重建数据。它本质上是一个包含 html 和实际图像数据的 XML 文档。 html 和随附的图像是 base64 编码的。如果您想查看存档示例,请将其保存,或者将 safari 中的简单网页保存为存档。以 Text wrangler 之类的方式打开存档文件。文本编辑可能会尝试渲染它。

我写了一篇关于如何制作 Apple Web Archive 粘贴板类型的文章,这可能会帮助您了解该过程。

http://mcmurrym.wordpress.com/2010/08/13/pasting-simplehtml-into-the-mail-app-ios/

我认为您是在尝试从您的应用程序中发送邮件而不是使用邮件应用程序?

如果是这种情况,您可能必须从粘贴板上获取 xml,找到保存编码图像数据的标签,对其进行解码并从解码数据创建图像。

【讨论】:

忘记更新问题状态。我在发布问题后找到了解决方案。谢谢您的时间。

以上是关于从 UIPasteboard 获取复制的数据的主要内容,如果未能解决你的问题,请参考以下文章

进入后台、复制新文本并返回应用程序后如何从 UIPasteboard 中检索文本?

应用程序处于后台状态时如何从 UIPasteboard 获取数据(字符串、url、图像等)

可以从 Safari 访问 UIPasteBoard 吗?

UIPasteboard

无法复制到 UIPasteBoard

UIPasteboard 无法多次复制具有到期时间的文本