将HTML复制到UIPasteboard

我想从我的应用程序传输HTML到iPhone邮件应用程序。 我已经有了HTML文本 – 唯恐说<span style ='color:red>> Test </ span>我可以把它放到UIPasteBoard上 – 但是当我把它粘贴到邮件里时,我得到了html源文件。

当我在HTMLView中放置相同的string时 – select它并将其复制粘贴为邮件中的红色文本。

我需要做些什么才能将string放在UIPasteBoard中,以便将其粘贴为红色文本到邮件应用程序中? 我一直在寻找“格式types” – 并发现,UIPasteBoard返回“Aplle Web Archive粘贴板types”,当我有剪贴板中的元素(从UIWebView复制)。 但是在将内容添加到UIPasteBoard时,将其设置为types将不会在邮件应用程序中粘贴任何内容。

曼弗雷德

不,它不能。 UIPasterBoard只接受string,图像,URL和颜色。

那是不正确的。 你可以将任何东西粘贴到粘贴板上,阅读文档。

我终于把一个教程,显示如何将HTML复制到邮件应用程序。 http://mcmurrym.wordpress.com/2010/08/13/pasting-simplehtml-into-the-mail-app-ios/

在你给你评论的同一个链接上,你会发现这个段落在最上面。

统一types标识符(UTI)经常用于表示types(有时称为纸板types)。 例如,您可以使用kUTTypeJPEG(public.jpeg的常量)作为JPEG数据的表示types。 但是,应用程序可以自由使用任何string他们想要的表示types ; 但是,对于特定于应用程序的数据types,build议使用反向DNS表示法以确保types的唯一性(例如,com.myCompany.myApp.myType)。

正下方是一个链接到这里。 http://developer.apple.com/iphone/library/documentation/FileManagement/Conceptual/understanding_utis/understand_utis_intro/understand_utis_intro.html#//apple_ref/doc/uid/TP40001319

这解释了UTI。

最后,这个链接给你几种typeshttp://developer.apple.com/iphone/library/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html#//apple_ref/doc/uid/TP40009259-SW1

当然,这个列表不是所有types,因为你可以创build自己的types。

我已经成功地将html粘贴到邮件应用程序中。 我会给你一个开始的好地方

创build一个应用程序,将显示在纸板的数据types。 转到设备上的Safari浏览器,复制一个网页。 运行你的应用程序,你会注意到剪贴板的types是“Apple Web Archive的纸板types”。 请注意,这是一个真正的纸板types(自定义)。 如果您尝试通过创buildWeb存档并尝试将其作为文本粘贴到邮件应用程序中来复制Safari浏览器移动复制和粘贴function,则会将Web存档文件显示为原始xml。 如果您将types定义为“Apple Web Archive粘贴板types”,邮件应用程序将实际将该粘贴格式设置为html。

如果你想知道一个Web档案的样子。 在桌面Safari浏览器上,只需将网页保存为文档,然后在文本阅读器中查看该文件(文本编辑将尝试parsing该文件,因此您可以使用不同的程序查看存档XML)。

请阅读所有文档,因为您可以发现您可以在发送给我的链接中执行自定义types。

我有HTML复制工作,所以它正确粘贴到内置的邮件和Notes应用程序。 它看起来像这样:

NSString *htmlContent = @"This is <span style='font-weight:bold'>HTML</span>"; NSString *content = @"This is HTML!"; NSDictionary *dict = @{(NSString *)kUTTypeText: content, (NSString *)kUTTypeHTML: htmlContent}; [[UIPasteboard generalPasteboard] setItems:@[dict]]; 

要访问这些types的常量,你需要导入这个:

 #import <MobileCoreServices/UTCoreTypes.h>