Запретить расширение общего ресурса моего собственного приложения в листе общего доступа

Я создаю приложение для iOS, которое управляет аудиофайлами. Он включает расширение общего доступа для получения аудиофайлов из других приложений. Он также может делиться своими аудиофайлами с другими приложениями.

Когда из моего приложения запускается общий ресурс, я не хочу, чтобы мое собственное приложение отображалось в общем списке. Другими словами, я не хочу, чтобы пользователь отправлял свой собственный аудиофайл обратно в мое приложение.

Я не могу найти способ исключить свое собственное приложение с помощью NSExtensionActivationRule.

0 ответов

Извините за опоздание, но надеюсь, что этот ответ вам поможет.

Прежде всего, определите следующие строки в своем коде

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 - это идентификатор вашей группы приложений, а затем при представлении activityViewController используйте код ниже

let activityViewController = UIActivityViewController(activityItems: [/* Other Items To Share, */ ActionExtensionBlockerItem()], applicationActivities: nil)
Другие вопросы по тегам