如何在发布到Facebook和Twitter时自定义UIActivityViewController以显示URL链接?

Ovi*_*ler 27 facebook ios ios6

所以我UIActivityViewController在iOS 6中尝试新的,它很容易启动和运行,但我无法弄清楚如何控制它就像我想要的那样.所以我想发布一篇文章的链接,我也想附上链接的图像.我不希望将该图像上传到某些Facebook相册,就像URL缩略图一样.

这很容易在facebook SDK中完成,因为它们可以完全控制它,但有没有办法用它做UIActivityViewController?这是我得到的:

    NSArray *activityItems = @[[NSURL URLWithString:[article link]], [UIImage imageNamed:@"myStockImage"]];
    UIActivityViewController *viewCont = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
    [self presentViewController:viewCont animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

这样可行,但它会将图像上传到"iOS专辑".如果我没有在阵列中添加图像,那么Facebook表格看起来像是空白的,附件显示灰色的safari徽标(就像缩略图一样!)在safari中当你尝试Facebook链接时,它使用了屏幕抓取页面作为缩略图,我想做那样的事情

更新:

所以这就是我的应用程序的样子(使用UIActivityViewController或SLCompose方式).了解如何将图片上传到相册iOS Photos

照片放置不正确

这就是我想要的样子(参见Safari也是):

在此输入图像描述

小智 50

我已经搜索了这个,我得出结论,使用UIActivityViewController那里没有办法做你想要的.每次尝试共享照片时,只会将照片放入您的相册中,默认为"iOS"相册.

在我的情况下,只要从我需要分享的链接中检索到图像,我就不需要发布照片(就像你在Facebook时间轴上发布链接一样,它会自动从该链接抓取图片,并且图片成为链接).为了做到这一点,我发现如果我只发布一个URL它不起作用.您必须发布一些初始文本然后发布URL,并通过在activityItems数组中按顺序放置对象来实现.

这是我的工作代码:

NSArray * activityItems = @[[NSString stringWithFormat:@"Some initial text."], [NSURL URLWithString:@"http://www.google.com"]];
NSArray * applicationActivities = nil;
NSArray * excludeActivities = @[UIActivityTypeAssignToContact, UIActivityTypeCopyToPasteboard, UIActivityTypePostToWeibo, UIActivityTypePrint, UIActivityTypeMessage];

UIActivityViewController * activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivities];
activityController.excludedActivityTypes = excludeActivities;

[self presentViewController:activityController animated:YES completion:nil]; 
Run Code Online (Sandbox Code Playgroud)

我还注意到,如果沿这些对象发布照片,它将不会从链接中检索任何图像.

我希望这有帮助.