防止我的应用程序的共享扩展出现在共享菜单中。

5
我正在开发一个管理音频文件的iOS应用程序。它包括一个共享扩展,以从其他应用程序接收音频文件。它也可以与其他应用程序分享其音频文件。
当从我的应用程序启动共享时,我不希望我的应用程序出现在共享选项中。换句话说,我不希望用户将自己的音频文件发送回我的应用程序。
我找不到一种方法来使用NSExtensionActivationRule排除我的应用程序。

如果你找到了答案,请告诉我! - thibaut noah
史蒂夫,你对这个有什么发现吗? - SAHM
很抱歉,我们从未找到解决这个问题的方法。 - Steve s.
@thibautnoah 你有得到任何答案吗? - Ilesh P
@ilesh 不幸的是,不行。 - thibaut noah
1个回答

1

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

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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接