Запретить расширение общего ресурса моего собственного приложения в листе общего доступа
Я создаю приложение для 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)