ios - UIActivityViewController Gmail 共享主题和正文相同

标签 ios objective-c xcode6 gmail uiactivityviewcontroller

我正在通过 UIActivityController 分享一些内容。

它适用于其他选项。

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

但是当我使用 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];

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

使用默认应用:

enter image description here

使用 Gmail: enter image description here

我也在 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/

相关文章:

ios - 如何查看和选择Xcode6中使用的编译器?

ios - Apple Enterprise Developer Distribution Certificate 出现在钥匙串(keychain)中,而不是 Xcode Organizer 中

ios - 为什么 View Controller Segue 中的发件人与 Collection View 单元 Segue 中的发送者不同

ios - 我想在 NSDateComponents 类中获得四分之一的值(value)

objective-c - 类在 Xcode 4 工作区中的不同 Xcode 项目之间在 IB 中共享。为什么?

objective-c - 为 ARC 做好准备 - 最佳策略?

objective-c - 如何复制 UIRefreshControl 的 "pulled chewing gum"外观?

ios - XCode 找不到错误的 .app 文件

ios - 在 Xcode 中运行 iOS 单元测试时引用 _main 的链接器错误

ios - 处理外部键盘按下而不在 iOS 应用程序的屏幕上显示键盘