我正在尝试找到一种方法来使用UIPasteBoard
将HTML字符串复制到粘贴板中,并能够将其粘贴到iOS上的不同邮件客户端中。
我尝试了StackOverflow的两个接受的答案:https://stackoverflow.com/a/6566850/1249958和https://stackoverflow.com/a/21911997/1249958。这些解决方案适用于默认的iOS邮件客户端,但它们对Gmail没有任何影响。
我知道Gmail接受来自粘贴板的HTML输入,因为从Safari复制HTML并将其粘贴到Gmail应用中会按预期工作。
答案 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}]];