我正在通过 UIActivityController
分享一些内容。
它适用于其他选项。
我可以在默认邮件应用程序中获取 subject
和 body
。
但是当我使用 gmail
分享内容时,我的邮件的 Subject
不见了,我在 Gmail 中得到了 Body
内容主题的
部分:
这是我的代码:
NSString *body = @"I am Body";
NSString *tagLine = @"I am Subject";
NSArray *objectToShare = [NSArray arrayWithObjects:body, nil];
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectToShare applicationActivities:nil];
[activityVC setValue:tagLine forKey:@"subject"];
NSArray *excludeActivities = @[UIActivityTypeAirDrop,
UIActivityTypePrint,
UIActivityTypeAssignToContact,
UIActivityTypeSaveToCameraRoll,
UIActivityTypeAddToReadingList,
UIActivityTypePostToVimeo];
activityVC.excludedActivityTypes = excludeActivities;
[self presentViewController:activityVC animated:YES completion:nil];
为了更好的图片这是截图:
使用默认应用:
我也在 SO 上尝试了不同的答案。但它们都不起作用。
最佳答案
在撰写本文时,Google 不允许设置电子邮件的主题。人们多次将其报告为错误,似乎仍不支持此功能。
查看其他 Google 拥有的产品,并尝试通过 Gmail 共享一些内容,您会看到 Gmail 共享事件没有主题(例如 Google Chrome),或者与电子邮件正文相同(Google翻译器),而如果您将它们分享到普通应用程序,则似乎其中一些有主题。因此,即使是 Google 产品也有相同的行为。
如果您在 subjectForActivityType
函数内使用断点,您会发现 Gmail 事件不会遇到断点,而默认邮件和其他事件将尝试读取主题。
@implementation EmailItemProvider
- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController {
return _body;
}
- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType {
return _body;
}
- (NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType {
return _subject;
}
关于ios - UIActivityViewController Gmail 共享主题和正文相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34264751/