我使用以下代码通过UIActivityViewController将字符串仅共享给Facebook
UIActivityViewController *activityViewController =
[[UIActivityViewController alloc] initWithActivityItems:activityItems
applicationActivities:nil];
activityViewController.excludedActivityTypes = @[UIActivityTypePostToWeibo,
UIActivityTypeMessage,
UIActivityTypeMail,
UIActivityTypePrint,
UIActivityTypeCopyToPasteboard,
UIActivityTypeAssignToContact,
UIActivityTypeSaveToCameraRoll,
UIActivityTypeAddToReadingList,
UIActivityTypePostToFlickr,
UIActivityTypePostToVimeo,
UIActivityTypePostToTencentWeibo,
UIActivityTypeAirDrop,
UIActivityTypePostToTwitter];
[self presentViewController:activityViewController animated:YES completion:^{
...
}这是有效的,除非它还显示WhatsApp图标和more图标。有没有办法去掉这两个?提前感谢!
发布于 2019-03-13 16:33:25
虽然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")发布于 2015-10-08 09:56:05
不能,您只能删除Apple为其提供常量的activity类型。没有办法删除出现的第三方应用程序或“更多...”活动。
如果你只想分享一个特定的应用程序,那么使用UIActivityController是没有意义的。
使用各种Facebook库/API之一与Facebook共享您的数据。
https://stackoverflow.com/questions/33005258
复制相似问题