如何设置UIActivityViewController Gmail共享主题不同于正文

时间:2015-05-20 13:01:37

标签: ios iphone objective-c-blocks uiactivityviewcontroller

我正在使用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共享选项设置不同于正文的主题。

3 个答案:

答案 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的人?如果您在本机邮件应用程序上共享相同的内容,则会在主题字段中填充帖子标题,这是预期的行为。reddit

更新:老兄!这个人发现他们是如何在iOS的Reddit上做到这一点的(我注意到Slack也是这样做的)https://stackoverflow.com/a/51451433/1272263他们在正文文本的开头添加了很多空白!截取了原始Mail(左侧)正文和Gmail(右侧)的屏幕截图: solution