我试图从我的UIActivityType中排除所有服务,除了电子邮件和短信.我使用以下声明:
activityController.excludedActivityTypes = @[UIActivityTypeAddToReadingList,UIActivityTypeAirDrop,UIActivityTypeAssignToContact,UIActivityTypeCopyToPasteboard,
UIActivityTypePostToFacebook,UIActivityTypePostToFlickr,UIActivityTypePostToTencentWeibo,UIActivityTypePostToTwitter,
UIActivityTypePostToVimeo,UIActivityTypePostToWeibo,UIActivityTypePrint,UIActivityTypeSaveToCameraRoll];
Run Code Online (Sandbox Code Playgroud)
在iOS 9下,我注意到还有一些名为"Notes"的东西也出现了.我查看了Apple文档以及自动完成功能,但找不到引用Notes的条目.我该如何排除它?
显然iOS8默认情况下会向iOS8中的活动视图添加"iCloud Photo Sharing"活动,但我没有找到任何有用的文档,特别是如何明确删除它(进入"更多"选项允许用户切换显示/隐藏它,但对于我们的应用程序,我们希望完全禁止此选项).
有没有人想过如何禁用它?任何输入将不胜感激.谢谢!


我想阻止我的应用使用扩展机制将其内容分享给某些其他应用.例如,我希望用户能够共享链接,但不能使用Gmail应用.
我对这部纪录片的理解是:以下内容应该有效:
// vieController previously initialised like this: UIActivityViewController(activityItems: [provider], applicationActivities: nil)
viewController.excludedActivityTypes = ["com.google.Gmail.ShareExtension"]
Run Code Online (Sandbox Code Playgroud)
这不起作用.我错过了什么吗?非Apple活动类型是否不适用于此机制?
尝试在我的应用程序中重新集成共享按钮.苹果再次改变了一些事情Swift 3的iOS 10.我刚刚更新到Xcode 8发布版本,它一直在给我一些问题UIActivities.
发现它们中的许多现在UIActivityType.都是为了使编译器不会失败而开始的.然而,他们中的许多人仍在使用com.apple它也使我因某种原因将activityType数组转换为类型[Any].
那么......有谁知道他们为什么这样做?你在activityTypesToExclude.contains(where: (Any) throws -> Bool)方法中的for参数中放了什么?
internal func _shouldExcludeActivityType(_ activity: UIActivity) -> Bool {
let activityTypesToExclude = [
"com.apple.reminders.RemindersEditorExtension",
UIActivityType.openInIBooks,
UIActivityType.print,
UIActivityType.assignToContact,
UIActivityType.postToWeibo,
"com.google.Drive.ShareExtension",
"com.apple.mobileslideshow.StreamShareService"
] as [Any]
if let actType = activity.activityType {
if activityTypesToExclude.contains(where: (Any) throws -> Bool) {
return true
}
else if super.excludedActivityTypes != nil {
return super.excludedActivityTypes!.contains(actType)
}
}
return false
}
Run Code Online (Sandbox Code Playgroud)