从 UIActivityViewController 中排除 UIActivities
Excluding UIActivities from UIActivityViewController
我正在使用 UIActivityViewController
共享一个 .CSV 文件,如果用户有我的应用程序,该文件可以通过我的应用程序打开。我只想让我的用户使用网络、邮件或空投进行共享。
这或多或少是我的代码
//Initialize activityVC. Activity item is [self] because I'm adopting UIActivityItemSource Protocol.
let activityVC = UIActivityViewController(activityItems: [self], applicationActivities: nil)
//Here I'm trying to exclude everything but web, mail, and airdrop.
activityVC.excludedActivityTypes = [UIActivityTypeCopyToPasteboard, UIActivityTypeAddToReadingList, UIActivityTypeAssignToContact, UIActivityTypePostToFacebook, UIActivityTypePostToFlickr, UIActivityTypePostToTencentWeibo, UIActivityTypePostToTwitter, UIActivityTypePostToVimeo, UIActivityTypePostToWeibo, UIActivityTypePrint, UIActivityTypeSaveToCameraRoll]
if #available(iOS 9.0, *) {
activityVC.excludedActivityTypes?.append(UIActivityTypeOpenInIBooks)
} else {
// Fallback on earlier versions
}
//Present VC
self.presentViewController(activityVC, animated: true, completion: nil)
所以我的问题是,即使我试图通过代码排除所有可用的东西,当我不希望我的用户共享时,我仍然会收到随机应用程序,例如 slack 和笔记 .CSV 这样。有什么想法吗?
您不能从 UIActivityViewController
中排除应用程序,因为这些应用程序被声明可以打开和处理 .csv 文件类型(通过 Info.plist
中的 Document types
)。
如果您不想显示这些应用程序,您可以直接将文件共享到目的地。例如对于电子邮件,您可以使用 MFMailComposeViewController
.
我正在使用 UIActivityViewController
共享一个 .CSV 文件,如果用户有我的应用程序,该文件可以通过我的应用程序打开。我只想让我的用户使用网络、邮件或空投进行共享。
这或多或少是我的代码
//Initialize activityVC. Activity item is [self] because I'm adopting UIActivityItemSource Protocol.
let activityVC = UIActivityViewController(activityItems: [self], applicationActivities: nil)
//Here I'm trying to exclude everything but web, mail, and airdrop.
activityVC.excludedActivityTypes = [UIActivityTypeCopyToPasteboard, UIActivityTypeAddToReadingList, UIActivityTypeAssignToContact, UIActivityTypePostToFacebook, UIActivityTypePostToFlickr, UIActivityTypePostToTencentWeibo, UIActivityTypePostToTwitter, UIActivityTypePostToVimeo, UIActivityTypePostToWeibo, UIActivityTypePrint, UIActivityTypeSaveToCameraRoll]
if #available(iOS 9.0, *) {
activityVC.excludedActivityTypes?.append(UIActivityTypeOpenInIBooks)
} else {
// Fallback on earlier versions
}
//Present VC
self.presentViewController(activityVC, animated: true, completion: nil)
所以我的问题是,即使我试图通过代码排除所有可用的东西,当我不希望我的用户共享时,我仍然会收到随机应用程序,例如 slack 和笔记 .CSV 这样。有什么想法吗?
您不能从 UIActivityViewController
中排除应用程序,因为这些应用程序被声明可以打开和处理 .csv 文件类型(通过 Info.plist
中的 Document types
)。
如果您不想显示这些应用程序,您可以直接将文件共享到目的地。例如对于电子邮件,您可以使用 MFMailComposeViewController
.