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

hal*_*ilb 8 gmail uipasteboard ios

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

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

我知道Gmail接受来自粘贴板的HTML输入,因为从Safari复制HTML并将其粘贴到Gmail应用中可以正常工作.

mat*_*ark 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}]];
Run Code Online (Sandbox Code Playgroud)