Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set UIActivityViewController Gmail Share Subject different than body

I am using Gmail Share Extension from Google. I am providing implementation of:

- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType;

- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController;

- (NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType;

For Mail client (from Apple) it goes into delegate method below but Gmail

- (NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType;

Instead it shows subject same as body text. I am wondering how can I set subject different than body text for Gmail Share option.

like image 925
sanjana Avatar asked May 20 '15 13:05

sanjana


2 Answers

The solutions is pretty simple - need pass NSUrl to the list of activity items.

Here is a sample on Swift:

ActivityViewController(activityItems: [URL(string: "https://www.apple.com")!])

Here is for 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);
    }

From that perspective, if you will pass any string items - they will be copied. App Store, Facebook and others are passing URLs or URLs+Images - which looks like also are handling somehow by Gmail client.

like image 100
bkmza Avatar answered Sep 22 '22 19:09

bkmza


This is a GMail app issue

A bug report was filled on 12/06/2017

https://productforums.google.com/forum/#!topic/gmail/UJJx4BcRJiU;context-place=forum/gmail

Another discussion about the issue:

https://github.com/BranchMetrics/ios-branch-deep-linking/issues/789

like image 33
batsansierra Avatar answered Sep 18 '22 19:09

batsansierra