3

我正在为我的 UIActivityViewController 子类化 UIActivityItemProvider,这样当用户选择 UIActivityTypeMessage 时,它​​只会显示一条消息,但如果用户选择 UIActivityTypeFacebook,它将显示一条带有图像的消息。

这是我的代码,我只能返回带有 UIActivityTypeMessage 的消息,但对于 UIActivityTypeFacebook,我不知道如何返回带有图像的消息。

- (id)item
{
    if ([self.placeholderItem isKindOfClass:[NSString class]]) {
        if ([self.activityType isEqualToString:UIActivityTypeMessage]) {
            return [NSString stringWithFormat:@"%@\n%@",self.text,self.url];
        } else {
            NSDictionary *d = [[NSDictionary alloc] initWithObjects:@[self.text,self.image] forKeys:@[@"text",@"image"]];
            return d;
        }
    }
    return self.placeholderItem;
}

UIActivityItemProvider 是否有特定的键和值可以用来设置消息、url 和图像?

作为更新,我在UIActivity 类参考中读到了特定活动类型的常量。不知道如何使用它们。有人可以启发我吗?

*UIActivityTypePostToFacebook 该对象将提供的内容发布到 Facebook 上的用户墙上。

使用此服务时,您可以提供NSString、NSAttributedString、UIImage、ALAsset 和 NSURL对象作为活动项的数据。您还可以指定其内容使用 assets-library 方案的 NSURL 对象。

4

1 回答 1

3

您将需要创建 3 个单独的活动提供程序,每种数据类型一个,并将它们全部传递到initWithActivityItems:applicationActivities:on 函数中UIActivityViewController。这些活动利用了您提供的所有提供者,并UIActivityViewController隐藏了不支持所有提供者的任何提供者(例如,在某些情况下,这会使仅包含图像变得困难)。

于 2014-12-09T04:04:37.593 回答