代码之家  ›  专栏  ›  技术社区  ›  ManniAT

将HTML复制到UIPasteBoard

  •  3
  • ManniAT  · 技术社区  · 15 年前

    我想将HTML从我的应用程序传输到iPhone邮件应用程序。 我已经有了html文本-以免说<span style='color:red'>测试</span> 我可以把它放到uipasteboard上,但是当我把它粘贴到mail上时,我得到了html源代码。

    当我在htmlview中放置同一个字符串时-选择它并复制它,它会在邮件中粘贴为红色文本。

    我需要做什么才能将字符串放在uipasteboard中,以便它作为红色文本粘贴到邮件应用程序中? 我一直在搜索“格式类型”,发现当我在剪贴板中有元素(从uiwebview复制)时,uipasteboard返回“aplle web archive pasteboard type”。 但是在将内容添加到uipasteboard时将其设置为type不会在邮件应用程序中粘贴任何内容。

    曼弗雷德

    4 回复  |  直到 10 年前
        1
  •  -13
  •   F'x    15 年前

    不,不行。uipasterboard只接受字符串、图像、url和颜色。

        2
  •  8
  •   maxpower    14 年前

    那不是真的。你可以把任何东西粘贴到粘贴板上,去看文档。

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

        3
  •  2
  •   maxpower    14 年前

    在你在评论中给出的同一个链接上,你会在顶部找到这一段。

    统一类型标识符(uti)通常用于表示类型(有时称为粘贴板类型)。 例如,可以使用kuttypeJPEG(public.jpeg的常量)作为JPEG数据的表示类型。但是,应用程序可以自由地将它们想要的任何字符串用于表示类型 ;但是,对于特定于应用程序的数据类型,建议使用反向DNS表示法来确保类型的唯一性(例如,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

    这就解释了尿路感染。

    最后,这个链接提供了几种类型 http://developer.apple.com/iphone/library/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html#//apple_ref/doc/uid/TP40009259-SW1

    当然,这个列表并不是所有类型,因为您可以创建自己的类型。

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

    创建将在粘贴板中显示数据类型的应用程序。转到设备上的Safari,复制网页。运行你的应用程序,你会注意到粘贴板类型是“apple web archive pasteboard type”,注意这实际上是一种粘贴板类型(自定义类型)。如果您试图通过创建Web存档来复制Safari Mobile复制和粘贴功能,并尝试将其作为文本粘贴到邮件应用程序中,则它将以原始XML形式显示Web存档文件。如果将类型定义为“apple web archive pasteboard type”,则邮件应用程序实际上会将粘贴格式设置为html。

    如果你想知道网络档案是什么样子的。在桌面Safari上,只需将网页保存为存档并在文本阅读器中查看该文件(文本编辑将尝试解析它,因此您可以使用其他程序查看存档XML)。

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

        4
  •  2
  •   Tom Hamming    10 年前

    我已经有了HTML副本,所以它可以正确地粘贴到内置的邮件和笔记应用程序中。看起来是这样的:

    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]];
    

    要访问这些类型常量,需要导入以下内容:

    #import <MobileCoreServices/UTCoreTypes.h>