UIActivityTypePostToFacebook 如何发布图像和文本 xcode ios NSDictionary 文本键

Posted

技术标签:

【中文标题】UIActivityTypePostToFacebook 如何发布图像和文本 xcode ios NSDictionary 文本键【英文标题】:UIActivityTypePostToFacebook howto post image and text xcode ios NSDictionary key for text 【发布时间】:2015-05-09 22:21:16 【问题描述】:

在我的 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.. 但我没有看到任何文字...谁能解释我做错了什么??

谢谢你!

【问题讨论】:

根据facebook平台政策,不允许预填充任何对话框:developers.facebook.com/docs/apps/review/prefill 你不对。为 fascebook 创建一条消息,xcode 使用本机方法,它们允许在系统对话框上编写文本。奇怪的想法,就像我之前写的那样,是我可以写文字,放一张图片,但是我不能放url和图片……很奇怪!!! 【参考方案1】:

您需要为您希望传递给 UIActivityViewController 的每种数据类型子类化 UIActivityItemProvider。您需要 UIActivityItemProvider 的每个子类的原因是为了在使用 initWithPlaceholderItem: 初始化 UIActivityItemProvider 子类时提供特定的数据类型。

因此,在您的示例中,您将拥有一个字符串和一个 UIActivityItemProvider 的图像子类。字符串子类将为其 initWithPlaceholderItem: 返回一个空字符串。图像子类将返回资产目录中的任何图像,因为它是 initWithPlaceholderItem:。

此外,虽然没有记录并且完全令人讨厌,但如果安装了 Facebook 应用程序,Facebook 活动不允许字符串活动项提供程序。即便如此,它似乎也去掉了您发送给它的 URL 和主题标签。

【讨论】:

以上是关于UIActivityTypePostToFacebook 如何发布图像和文本 xcode ios NSDictionary 文本键的主要内容,如果未能解决你的问题,请参考以下文章