ios - 无法从 [UIActivityViewController excludedActivityTypes] 中排除 UIActivityTypePostToFacebook

标签 ios objective-c facebook uikit uiactivityviewcontroller

我希望创建一个 UIActivityViewController,它将排除一些 native 共享功能,包括 Facebook 和 Twitter 共享。但 Facebook 共享仍可作为 ShareExtention 使用。

我创建了以下内容:

activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems  applicationActivities:applicationActivities];

并通过设置排除的 Activity 类型来排除 Facebook。

activityViewController.excludedActivityTypes = @[
                                                 UIActivityTypeAddToReadingList,
                                                 UIActivityTypeAssignToContact,
                                                 UIActivityTypePrint,
                                                 UIActivityTypeSaveToCameraRoll,
                                                 UIActivityTypeCopyToPasteboard,
                                                 UIActivityTypeAirDrop,
                                                 UIActivityTypePostToFacebook,
                                                 UIActivityTypePostToTwitter
                                                 ];

在我的 iPhone 上运行时,尽管被排除在外,Facebook 图标仍会出现。

调查这是如何发生的,我看到事件 Controller 的完成处理程序正在返回 activityType = com.facebook.Facebook.ShareExtension,而不是 UIActivityTypePostToFacebook。 Also when selecting the more button in the activity controller there is a toggle for Facebook as for other apps which make use of the Share convention.

为什么 Facebook 使用 shareExtention 而 Twitter 没有,为什么我不能使用排除的事件来排除它?

注意:我已经在多台设备上对此进行了测试,但问题只存在于一台运行 8.1.3 的设备上。

谢谢

最佳答案

试试这个

// sharing items in an array lets say sharingItems
NSArray *sharingItems = @[@"hello", @"how", @"are", @"You."];

//making UIActivityViewController object lets say avc
UIActivityViewController *avc = [[UIActivityViewController alloc] initWithActivityItems:sharingItems applicationActivities:nil];

//exclude UIActivityTypePostToFacebook 
avc.excludedActivityTypes = @[UIActivityTypePostToFacebook];

//presenting UIActivityViewController in our case avc
[self presentViewController:avc animated:YES completion:nil];

见下图,不包括Facebook

In image Facebook not included

评论 avc.excludedActivityTypes = @[UIActivityTypePostToFacebook]; Facebook 再次在共享选项中可见

When commenting  avc.excludedActivityTypes = @[UIActivityTypePostToFacebook]; Facebook again becomes visible in share option

关于ios - 无法从 [UIActivityViewController excludedActivityTypes] 中排除 UIActivityTypePostToFacebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30078598/

相关文章:

php - 使用 JSONmodel 尝试从服务器获取数据到 ios 设备

ios - 如何仅在选定的单元格中启用按钮?

iOS:如何关闭显示的 Leadbolt 广告的添加事件?

iphone - 如何在 iOS 中使用 Instrument

php - 如何测试 facebook "like"按钮?

objective-c - 我如何真正用 NSNumbers 做数学? (在 obj-c 中实现 lisp)

ios - 无法保持选择表行

iphone - 未调用地址簿回调

javascript - 如何使用自定义消息参数发送 Facebook apprequests/通知?

facebook - 将网站作为应用程序嵌入 Facebook