在我的 CustomActivityItemProvider 中,我得到了自定义 Facebook 共享项目的代码:
@implementation CustomActivityItemProvider
@property(nonatomic,strong) NSString *text;
@property(nonatomic,strong) NSURL *url;
@property(nonatomic,strong) UIImage *image;
- (id)item {
if ([self.activityType isEqualToString:UIActivityTypeMessage]) {
return [NSString stringWithFormat:@"%@\n%@",self.text,self.url];
}
if ([self.activityType isEqualToString:UIActivityTypePostToFacebook]) {
//>>>>FACEBOOK
self.url = [NSUrl urlWithString:@"http://www.google.it"];
self.text = @"FaceBookText";
self.image = [UIImage imageNamed:@"imageShare.png"];
NSDictionary *d = [[NSDictionary alloc] initWithObjects:@[self.text,self.image,self.url] forKeys:@[@"text",@"image",@"url"]];
return d;
}
return @"";
}
我无法发送图像和文本...我尝试了所有可能的键:“标题”或“文本”或“描述”但什么都没有..我看到了 img,我看到了 url..但是我看不到任何文字...谁能解释我做错了什么??
谢谢!
最佳答案
您需要为每个希望传递给 UIActivityViewController 的数据类型继承 UIActivityItemProvider。您需要 UIActivityItemProvider 的每个子类的原因是在使用 initWithPlaceholderItem: 初始化 UIActivityItemProvider 子类时提供特定的数据类型。
因此,在您的示例中,您将拥有 UIActivityItemProvider 的字符串和图像子类。 string 子类将为其 initWithPlaceholderItem: 返回一个空字符串。图像子类将返回 Assets 目录中的任何图像,因为它是 initWithPlaceholderItem:。
此外,尽管没有记录且非常烦人,但如果安装了 Facebook 应用程序,则 Facebook 事件不允许字符串事件项提供程序。即便如此,它似乎也会删除您发送给它的 URL 和主题标签。
关于ios - UIActivityTypePostToFacebook 如何发布图像和文本 xcode ios 文本的 NSDictionary 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30145658/