【发布时间】:2015-07-16 16:47:38
【问题描述】:
我希望创建一个UIActivityViewController,它将排除一些本地共享功能,包括 Facebook 和 Twitter 共享。但 Facebook 分享仍可作为 ShareExtention 使用。
我创建以下内容:
activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivities];
并通过设置排除的活动类型排除 Facebook。
activityViewController.excludedActivityTypes = @[
UIActivityTypeAddToReadingList,
UIActivityTypeAssignToContact,
UIActivityTypePrint,
UIActivityTypeSaveToCameraRoll,
UIActivityTypeCopyToPasteboard,
UIActivityTypeAirDrop,
UIActivityTypePostToFacebook,
UIActivityTypePostToTwitter
];
在我的 iPhone 上运行时,尽管被排除在外,但仍会出现 Facebook 图标。
调查这是如何发生的,我发现活动控制器的完成处理程序返回的是activityType = com.facebook.Facebook.ShareExtension,而不是UIActivityTypePostToFacebook。此外,当在活动控制器中选择更多按钮时,Facebook 和其他使用共享约定的应用程序都有一个切换。
为什么 Facebook 使用 shareExtention 而 Twitter 没有,为什么我不能使用排除的活动来排除它?
注意:我已经在多台设备上对此进行了测试,但问题仅存在于一台运行 8.1.3 的设备上。
谢谢
【问题讨论】:
-
在 iOS 8.1.1 上有同样的问题。似乎它可能是一个苹果方面的错误。
-
您似乎看到了 Facebook 分享扩展程序(它是 Facebook iOS 应用程序的一部分)。您是否安装了 Facebook 应用(以及哪个版本)?
-
是的,它是 Facebook 分享扩展。我实际上在我的问题中引用了这个。但关键是,如果 Facebook 使用共享扩展,则无法禁用 Facebook 共享,因此:excludedActivityTypes = @[UIActivityTypePostToFacebook 等不可用。
-
我正在运行 Facebook 版本 30.0,于 5 月 7 日更新。 (我允许自动更新)
-
我的应用也有类似的情况。看起来在 iOS 8.3 上它是固定的,在 iOS
标签: ios objective-c facebook uikit uiactivityviewcontroller