如何在 ios 的 UIactivity 视图控制器中仅显示 facebook、twitter 和电子邮件(目标 c)?
Posted
技术标签:
【中文标题】如何在 ios 的 UIactivity 视图控制器中仅显示 facebook、twitter 和电子邮件(目标 c)?【英文标题】:how to show only facebook,twitter and email in UIactivity viewcontroller in ios (objective c)? 【发布时间】:2017-02-06 07:31:32 【问题描述】:我有一个应用,我只需要在 activityview 控制器中显示 facebook、twitter 和电子邮件?
一切都需要排除。
我该怎么做?
我们将不胜感激。
【问题讨论】:
您可以通过设置适当的excludedActivityTypes
来排除大量系统提供的活动。
参考这个:***.com/questions/31792506/…
不能。不过,您可以自定义自己的视图。
【参考方案1】:
排除一切:
NSArray *exclude = @[UIActivityTypePostToFacebook,
UIActivityTypePostToTwitter,
UIActivityTypePostToWeibo,
UIActivityTypeMessage,
UIActivityTypeMail,
UIActivityTypePrint,
UIActivityTypeCopyToPasteboard,
UIActivityTypeAssignToContact,
UIActivityTypeSaveToCameraRoll,
UIActivityTypeAddToReadingList,
UIActivityTypePostToFlickr,
UIActivityTypePostToVimeo,
UIActivityTypePostToTencentWeibo,
UIActivityTypeAirDrop,
UIActivityTypeOpenInIBooks];
activityViewController.excludedActivityTypes = exclude;
从列表中删除 Facebook、Twitter 和邮件以在操作表中显示它们。
【讨论】:
只需要显示facebook、twitter和email...其他第三方不想显示 只需从该数组中排除要在列表中显示的项目。 @Maulik 我想我看到了您的问题 - 只有 ios 集成服务是“可排他的”使用excludedActivityTypes
。因此,不会排除其他应用程序(WhatsApp、LinkedIn、Instagram)。该数组似乎是共享扩展包 ID 的列表(例如,消息具有标识符 com.apple.UIKit.activity.Message
)。如果您知道要排除的其他应用程序的标识符,您可能可以将它们添加到列表中。这个我没试过,不知道能不能用。
刚刚尝试排除“com.linkedin.LinkedIn.ShareExtension”(这是您与 LinkedIn 共享时返回的 ActivityType),并且可以确认它不起作用。我认为您必须自行开发并与 FB、Twitter 和邮件 SDK 集成。以上是关于如何在 ios 的 UIactivity 视图控制器中仅显示 facebook、twitter 和电子邮件(目标 c)?的主要内容,如果未能解决你的问题,请参考以下文章
UIActivity 视图控制器:自定义 Activity 放置
UIActivity activityViewController 在 iPad 上以模态方式呈现,而不是在弹出窗口中
如何在集合视图的底部/页脚中添加 uiactivity 指示器?
如何从 UIActivity 控制器中删除“添加到 iCloud Drive”?