在UIActivityItemProvider中返回文本、URL和图片

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 Class Reference中读到了关于特定活动类型的常量。不确定如何使用它们。有人能给我解释一下吗?

*UIActivityTypePostToFacebook对象会将提供的内容发布到用户的Facebook主页上。

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

1个回答

3
你需要创建三个不同的活动提供者,每个提供者对应一种数据类型,并将它们全部传递给UIActivityViewController中的initWithActivityItems:applicationActivities:函数。这些活动将使用你提供的所有提供者,UIActivityViewController会隐藏任何不支持它们全部的提供者(例如,有时只想包含图片可能会很困难)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接