UIActivityViewController无法在分享到Gmail应用程序时设置主题
我通过共享来自其他应用程序的内容可以看到,使用分享表分享到Gmail邮件应用程序时,可以设置不同的主题和正文。我已经实现了它,它在本地邮件应用程序上运行良好,但不适用于Gmail。UIActivityViewController无法在分享到Gmail应用程序时设置主题
进入Yelp并分享业务,然后从分享表中选择gmail,我发现主题和主体是不同的。主题包含业务地址,而主体包含地址+ Yelp上业务的链接。
我试图在本地邮件应用程序上成功复制此逻辑,但不能在Gmail应用程序中复制。
我曾尝试以下:
实施UIActivityItemSource方法
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[self] applicationActivities:nil];
- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController {
return @"";
}
- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType {
return @"body";
}
- (NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType {
return @"subject";
}
结果
苹果邮件主题设定为 “主题”,身体为 “体”
Gmail主题设置为“body”,Body设置为“body “
- (NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType
分享到Gmail应用程序时永远不会被调用。
我再尝试做
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[@"body"] applicationActivities:nil];
[activityViewController setValue:@"subject" forKey:@"subject"];
结果
苹果邮件主题设定为 “主题”,身上设置的多个黑客方式 “身体”
的Gmail标题设为“正文”,正文设为“正文”
任何使Gmail像Apple Mail一样的方式?
同样,我看到其他应用程序(如Yelp和Safari)通过共享表格获得了Gmail应用程序的正确行为。任何意见,将不胜感激,谢谢。
[_activityViewController setValue:subject forKey:@"subject"];
- 不支持的方式。
正确设置身体和主题的方式(iOS 7.0及更高版本) - 实施UIActivityItemSource
协议关于要共享的项目。
// EmailDataProvider.h
@interface EmailItemProvider : NSObject <UIActivityItemSource>
@property (nonatomic, strong) NSString *subject;
@property (nonatomic, strong) NSString *body;
@end
// EmailDataProvider.m
@implementation EmailDataProvider
- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController {
return _body;
}
- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType {
return _body;
}
- (NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType {
return _subject;
}
@end
而且比目前它:
EmailDataProvider *emailItem = [[EmailDataProvider alloc]init];
emailItem.subject = @"This is Subject text.";
emailItem.body = @"This is Body,set by programatically";
UIActivityViewController *activityViewController =
[[UIActivityViewController alloc] initWithActivityItems:@[emailItem]
applicationActivities:nil];
[self presentViewController:activityViewController animated:YES completion:nil];
在我的问题中,我发布我已经尝试了UIActivityItemSource协议,它不适用于gmail应用程序,只适用于本地邮件应用程序。与Gmail应用程序共享时,您是否亲自尝试实施? –
看起来像是Gmail刚刚从身体,直到第一个空行拉,使该主题 – dan
@丹你有一个测试字符串我可以试试?我试过@“这是第一部分。\ n \ n这是第二部分。”但仍然是相同的行为。 –
嗨!你找到了解决方案吗?我面临同样的问题 –