我正在使用Google的Gmail分享扩展程序。我提供的实施:
- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType;
- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController;
- (NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType;
对于Mail客户端(来自Apple),它将进入下面的委托方法,但Gmail
- (NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType;
相反,它显示的主题与正文相同。我想知道如何为Gmail共享选项设置不同于正文的主题。
答案 0 :(得分:1)
解决方案非常简单-需要将 NSUrl 传递到活动项目列表。
这是Swift上的示例:
ActivityViewController(activityItems: [URL(string: "https://www.apple.com")!])
这里是Xamarin:
public override NSObject GetItemForActivity(UIActivityViewController activityViewController, NSString activityType)
{
NSObject item = null;
if (activityType == UIActivityType.Mail)
{
item = PlaceholderItem;
}
else if (activityType == new NSString(_gmailActivityId))
{
item = NSUrl.FromString("https://www.apple.com");
}
else if (activityType == new NSString(_sparkActivityId))
{
item = PlaceholderItem;
}
return item ?? base.GetItemForActivity(activityViewController, activityType);
}
从这个角度来看,如果您要传递任何字符串项目-它们将被复制。 App Store,Facebook等正在传递URL或URL +图像-看起来Gmail客户端也在以某种方式进行处理。
答案 1 :(得分:0)
这是GMail应用程序问题
错误报告已于2017年12月6日填写
https://productforums.google.com/forum/#!topic/gmail/UJJx4BcRJiU;context-place=forum/gmail
关于该问题的另一讨论:
https://github.com/BranchMetrics/ios-branch-deep-linking/issues/789
答案 2 :(得分:0)
我已经为此奋斗了几天,我所能找到的所有东西都被标记为一个已知的错误,但是今天早上浏览Reddit只是为了好玩,我发现他们成功地至少拥有一个空白的Subject字段,问题是,如何?也许来自Reddit的人?如果您在本机邮件应用程序上共享相同的内容,则会在主题字段中填充帖子标题,这是预期的行为。
更新:老兄!这个人发现他们是如何在iOS的Reddit上做到这一点的(我注意到Slack也是这样做的)https://stackoverflow.com/a/51451433/1272263他们在正文文本的开头添加了很多空白!截取了原始Mail(左侧)正文和Gmail(右侧)的屏幕截图: