UIActivityViewController Gmail共享主题和正文相同

问题描述 投票:20回答:1

我通过UIActivityController分享一些内容。

它适用于其他选项。

我可以在默认邮件应用程序中获取subjectbody

但是,当我用gmail分享内容时,我邮件的Subject消失了,我在Gmail Body部分获得Subject's内容:

这是我的代码:

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

为了更好的图片这里是截图:

使用默认应用:

enter image description here

使用Gmail:enter image description here

我也尝试过不同的答案。但它们都不起作用。

ios objective-c xcode6 gmail uiactivityviewcontroller
1个回答
2
投票

在撰写本文时,Google不允许设置电子邮件主题。人们多次将其报告为错误,似乎仍然不支持此功能。

查看其他Google所有的产品,并尝试通过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;
}
© www.soinside.com 2019 - 2024. All rights reserved.