iOS:在UIActivityViewController中禁用WhatsApp?

时间:2015-10-08 01:44:44

标签: ios objective-c uiactivityviewcontroller

我使用以下代码仅使用UIActivityViewController将字符串共享到Facebook

a."count"

除了它还显示WhatsApp图标和更多图标外,它还可以使用。有没有办法删除这两个?提前谢谢!

2 个答案:

答案 0 :(得分:4)

不,您只能删除Apple为其提供常量的活动类型。无法删除显示的第三方应用或"更多..."活性。

如果您只想与单个特定应用分享,那么使用UIActivityController毫无意义。

使用各种Facebook库/ API之一与Facebook共享您的数据。

答案 1 :(得分:1)

虽然rmaddy的答案曾经是正确的,但对于自iOS 10以来遇到此问题的任何人,这样做都非常简单:

activityController.excludedActivityTypes = [
    UIActivity.ActivityType(rawValue: "net.whatsapp.WhatsApp.ShareExtension")
]

如果您想隐藏其他非系统活动类型,则可以与他们共享,然后使用completionWithItemsHandler闭包中返回的标识符:

shareActivityController.completionWithItemsHandler = { [weak self] (activityType, completed, returnedItems, activityError) in
    print("Activity Type", activityType?.rawValue ?? "?") // <--- Use the identifier this logs!
}

尽管可以肯定的是,关于OP的问题,这仍然无法帮助您将其限制为 Facebook,但您必须安装所有其他数千个具有以下功能的应用程序:分享活动以将其全部禁用!

这是我刚安装在iPhone上的应用程序的所有标识符:

UIActivity.ActivityType(rawValue: "com.apple.reminders.RemindersEditorExtension"),
UIActivity.ActivityType(rawValue: "com.apple.mobilenotes.SharingExtension"),
UIActivity.ActivityType(rawValue: "net.whatsapp.WhatsApp.ShareExtension"),
UIActivity.ActivityType(rawValue: "pinterest.ShareExtension"),
UIActivity.ActivityType(rawValue: "com.facebook.Messenger.ShareExtension"),
UIActivity.ActivityType(rawValue: "com.tinyspeck.chatlyio.share"), // Slack!
UIActivity.ActivityType(rawValue: "ph.telegra.Telegraph.Share"),
UIActivity.ActivityType(rawValue: "com.google.Drive.ShareExtension"),
UIActivity.ActivityType(rawValue: "com.toyopagroup.picaboo.share"), // Snapchat!
UIActivity.ActivityType(rawValue: "wefwef.YammerShare"),
UIActivity.ActivityType(rawValue: "com.fogcreek.trello.trelloshare"),
UIActivity.ActivityType(rawValue: "com.linkedin.LinkedIn.ShareExtension"),
UIActivity.ActivityType(rawValue: "com.hammerandchisel.discord.Share"),
UIActivity.ActivityType(rawValue: "com.google.Gmail.ShareExtension"),
UIActivity.ActivityType(rawValue: "com.google.inbox.ShareExtension"),
UIActivity.ActivityType(rawValue: "com.riffsy.RiffsyKeyboard.RiffsyShareExtension"), //GIF Keyboard by Tenor
UIActivity.ActivityType(rawValue: "com.google.hangouts.ShareExtension"),
UIActivity.ActivityType(rawValue: "com.ifttt.ifttt.share")