如here和here所述,可以使用ActivityType
的{{1}}排除其他UIActivityViewController
选项,而不仅仅是预先定义的选项
但是,如何找出任何给定excludedActivityTypes
的标识符(如果可能,最好以编程方式在构建时/运行时),以便随后将其排除在外?
例如,我要禁用发送到Kindle 和 Chrome 。
答案 0 :(得分:1)
要找出第三方活动的ActivityType
,请在显示您的UIActivityViewController
后选择该活动。
调用完成处理程序时,您提供给活动控制器的完成关闭/阻止具有一个类型为ActivityType
的参数,告诉您选择了哪个。
例如:
activityVC.completionWithItemsHandler = { activity, success, items, error in
print("activity: \(activity), success: \(success), items: \(items), error: \(error)")
}
现在您知道该活动的ActivityType
。更新代码以将该值添加到传递给excludedActivityTypes
的列表中。
答案 1 :(得分:0)
FYI,由@ rmaddy的最佳答案决定,如果有兴趣,这些是发送到Kindle 和 Chrome 的特定标识符:< / p>
let kindleActivity = UIActivity.ActivityType(rawValue: "com.amazon.Lassen.SendToKindleExtension")
let chromeActivity = UIActivity.ActivityType(rawValue: "com.google.chrome.ios.ShareExtension")
this answer to a related question中已经定义了许多其他示例。
不幸的是,即使将它们添加到excludedActivityTypes
的数组中,它们似乎仍然显示在UIActivityViewController
中。非常欢迎提供任何关于为什么以及如何解决此问题的意见!