ios - 如何自定义 UIActivityViewController 以在发布到 facebook 和 twitter 时显示 URL 链接?

标签 ios facebook ios6

所以我正在 iOS 6 中试用新的 UIActivityViewController,启动和运行它真的很容易,但我不知道如何控制它。所以我想发布一篇文章的链接,我还想为链接附上一张图片。我不希望将该图片作为 URL 缩略图上传到某些 Facebook 相册。

这在 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];

这有效,但它会将图像上传到“iOS 相册”。如果我不在数组中添加图像,那么 facebook 工作表看起来是空白的,附件显示一个灰色的 safari Logo (就像缺少缩略图一样!)在 safari 中,当您尝试 Facebook 链接时,它使用页面的屏幕截图作为缩略图,我想做类似的事情

更新:

这是我的应用程序的样子(使用 UIActivityViewController 或 SLCompose 方式)。看它如何将图片上传到相册 iOS Photos

Incorrect placement of photo

这是我想要的样子(另见 Safari):

enter image description here

最佳答案

我对此进行了搜索,得出的结论是使用 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]; 

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

希望对您有所帮助。

关于ios - 如何自定义 UIActivityViewController 以在发布到 facebook 和 twitter 时显示 URL 链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12657817/

相关文章:

ios - 使用 IOS 6 分段上传到 Amazon S3

iphone - 有什么方法可以知道 iPhone 连接到哪个网络(LTE 与 GSM)

ios - 在 IOS 中使用 QuickBlox 视频聊天,无需登录或密码

ios - 让 UIAlertView 保持不变

javascript - 如果代码被篡改太多,现场的音频播放器会变得脆弱

android - Facebook SSO、Android 和针对 Google App Engine 的身份验证

ios - 当用户开始在 UISearchBar 中输入时应用程序崩溃

ios - 导航/TabBarController消失

ios - 使用 Facebook sdk 与 UIImage 分享图表故事

ios6 - 日历已弃用