UIActivityViewController Gmail分享主题和正文相同

29

我正在使用 UIActivityController 分享一些内容。

其他选项都能正常工作。

在默认邮件应用中,我能够获取到邮件的 subjectbody

但是当我使用 gmail 分享内容时,我的邮件 Subject 被删除了,而我在 Gmail 的 Subject 部分得到了邮件的 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];

以下是截图:

使用默认应用程序:

输入图片说明

使用Gmail:

输入图片说明

我也尝试了Stack Overflow上的不同答案,但它们都没有起作用。


1
你有解决这个问题的方法吗?我也遇到了同样的问题。 - San007
1
我也遇到了同样的问题。现在已经是2017年了,还没有解决方案吗? - cavalleydude
1
在谷歌产品论坛中创建了一个与此工单相关的问题,请点赞:https://productforums.google.com/forum/#!topic/gmail/UJJx4BcRJiU;context-place=forum/gmail - brisky
我也遇到了这个问题。整个消息正文都显示在主题行中。 - Santosh
2
2018年仍未修复,我们无法阻止共享到电子邮件客户端。 - Hemang
显示剩余12条评论
1个回答

5
在撰写本文时,谷歌不允许设置电子邮件的主题。人们多次报告了这个问题,但似乎仍未支持此功能。
在查看其他谷歌产品,并尝试通过Gmail共享一些内容时,您会发现Gmail共享活动没有主题(例如Google Chrome),或者与电子邮件正文相同(Google Translator),而如果将它们分享到普通应用程序,则似乎有些具有主题。因此,即使谷歌产品也具有相同的行为。
如果您在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;
}

我知道每个人都将其报告为错误,但我今天看到Reddit在他们的应用程序中成功删除了“主题”。我在这里发布了更多信息:https://dev59.com/zl0a5IYBdhLWcg3waYGM#56646569 - Carlos Zinato

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