如何设置UIActivityViewController Gmail共享主题与正文不同 [英] How to set UIActivityViewController Gmail Share Subject different than body

查看:111
本文介绍了如何设置UIActivityViewController Gmail共享主题与正文不同的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Google的Gmail分享扩展.我正在提供以下内容的实现:

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;

对于Mail客户端(来自Apple),它将进入下面的委托方法,但Gmail会

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

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

它显示的主题与正文相同.我想知道如何为Gmail共享选项设置与正文不同的主题.

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

推荐答案

解决方案非常简单-需要将 NSUrl 传递到活动项目列表中.

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

这是Swift上的示例:

Here is a sample on Swift:

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

这里是Xamarin:

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);
    }

从这个角度来看,如果您要传递任何字符串项目-它们将被复制. App Store,Facebook等正在传递URL或URL +图像-看起来Gmail客户端也在以某种方式进行处理.

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.

这篇关于如何设置UIActivityViewController Gmail共享主题与正文不同的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆