使用UIPasteBoard复制HTML并粘贴到Gmail

8

我正在尝试使用UIPasteBoard将HTML字符串复制到剪贴板,并能够在iOS上的不同邮件客户端中粘贴它。

我尝试了StackOverflow上两个被接受的答案:https://dev59.com/61jUa4cB1Zd3GeqPVd8z#6566850https://dev59.com/ZGcs5IYBdhLWcg3wwmrA#21911997。这些解决方案在默认的iOS邮件客户端上有效,但在Gmail上没有任何区别。

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


1
有同样的运气吗? - Kumar KL
很抱歉,@KumarKL,不是这样的。 - halilb
尝试在从Safari复制和从UIWebView复制后检查剪贴板类型。很可能,您需要提供RTF类型才能使其正常工作。看看这是否有帮助,我会添加一个答案。 - Léo Natan
谢谢@LeoNatan。我试过后会告诉你的。 - halilb
@LeoNatan和halilb:你们有找到什么吗? - maxpaj
我无法 @maxpaj - halilb
1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接