gpt4 book ai didi

ios - 防止我自己的应用程序的共享扩展出现在共享表中

转载 作者:可可西里 更新时间:2023-11-01 04:55:25 25 4
gpt4 key购买 nike

我正在构建一个管理音频文件的 iOS 应用。它包括一个共享扩展,可以从其他应用程序接收音频文件。它还可以与其他应用共享其音频文件。

当从我的应用发起共享时,我不希望我自己的应用出现在共享表中。换句话说,我不希望用户将我自己的音频文件发送回我的应用。

我找不到使用 NSExtensionActivationRule 排除我自己的应用程序的方法。

最佳答案

首先在代码中定义以下行:

class ActionExtensionBlockerItem: NSObject, UIActivityItemSource {
func activityViewController(_ activityViewController: UIActivityViewController, dataTypeIdentifierForActivityType activityType: UIActivityType?) -> String {
return "com.your.unique.uti";
}
func activityViewController(_ activityViewController: UIActivityViewController, itemForActivityType activityType: UIActivityType) -> Any? {
// Returning an NSObject here is safest, because otherwise it is possible for the activity item to actually be shared!
return NSObject()
}
func activityViewController(_ activityViewController: UIActivityViewController, subjectForActivityType activityType: UIActivityType?) -> String {
return ""
}
func activityViewController(_ activityViewController: UIActivityViewController, thumbnailImageForActivityType activityType: UIActivityType?, suggestedSize size: CGSize) -> UIImage? {
return nil
}
func activityViewControllerPlaceholderItem(_ activityViewController: UIActivityViewController) -> Any {
return ""
}
}

com.your.unique.uti 是您的应用程序组标识符:

see this image for refrence

然后在呈现 activityViewController 时使用下面的代码:

let activityViewController = UIActivityViewController(activityItems: [/* Other Items To Share, */ ActionExtensionBlockerItem()], applicationActivities: nil)

关于ios - 防止我自己的应用程序的共享扩展出现在共享表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45556594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com