【问题标题】:Copying HTML using UIPasteBoard and pasting into Gmail使用 UIPasteBoard 复制 HTML 并粘贴到 Gmail
【发布时间】:2018-01-28 21:02:30
【问题描述】:

我正在尝试找到一种方法来使用UIPasteBoard 将 HTML 字符串复制到粘贴板中,并能够将其粘贴到 iOS 上的不同邮件客户端中。

我尝试了 StackOverflow 的两个公认答案:https://stackoverflow.com/a/6566850/1249958https://stackoverflow.com/a/21911997/1249958。这些解决方案适用于默认的 iOS 邮件客户端,但对 Gmail 没有任何影响。

我知道 Gmail 接受来自粘贴板的 HTML 输入,因为从 Safari 复制 HTML 并将其粘贴到 Gmail 应用程序中按预期工作。

【问题讨论】:

  • 有同样的运气吗?
  • 恐怕不是@KumarKL
  • 尝试在从 Safari 复制后与从 UIWebView 复制时检查粘贴板类型。最有可能的是,您需要提供一个 RTF 类型才能使其工作。看看这是否对你有帮助,我会添加一个答案。
  • 谢谢@LeoNatan。试用后我会告诉你的。
  • @LeoNatan 和 halilb:你们有没有发现什么?

标签: ios gmail uipasteboard


【解决方案1】:

这会将 HTML 和纯文本放在粘贴板上,并且可以粘贴到 GMail 中。

UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];

NSString *iOSRichContentKey = @"iOS rich content paste pasteboard type";
NSData *iOSRichContent = [iOSRichContentKey dataUsingEncoding:NSUTF8StringEncoding];

NSString *sampleHTML = @"This is <span style='font-weight:bold'>HTML</span>";

NSString *appleWebArchiveKey = @"Apple Web Archive pasteboard type";
NSData *sampleHTMLData = [sampleHTML dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *dict = @{@"WebMainResource": @{@"WebResourceData": sampleHTMLData, @"WebResourceFrameName": @"", @"WebResourceMIMEType": @"text/html", @"WebResourceTextEncodingName": @"UTF-8", @"WebResourceURL": @"about:blank"}};
NSData *appleWebArchive = [NSPropertyListSerialization dataWithPropertyList:dict format:NSPropertyListBinaryFormat_v1_0 options:0 error:nil];

NSString *plainTextKey = @"public.utf8-plain-text";
NSString *plainText = @"this is plain text";

[pasteboard setItems:@[@{iOSRichContentKey : iOSRichContent, appleWebArchiveKey : appleWebArchive, plainTextKey : plainText}]];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    相关资源
    最近更新 更多