使用UIPasteBoard复制HTML并粘贴到Gmail中

时间:2017-08-20 19:32:45

标签: ios gmail uipasteboard

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

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

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

1 个答案:

答案 0 :(得分:0)

这会将 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}]];