我正在使用 Google 的 Gmail 共享扩展程序。我正在提供以下实现:
- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType;
- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController;
- (NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType;
对于邮件客户端(来自 Apple),它进入下面的委托(delegate)方法,但 Gmail
- (NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType;
相反,它显示的主题与正文相同。我想知道如何为 Gmail 共享选项设置不同于正文的主题。
最佳答案
解决方案非常简单 - 需要将 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 客户端以某种方式处理。
关于ios - 如何设置 UIActivityViewController Gmail 共享主题不同于正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30350465/