Как разархивировать архив после запуска itemProvider.loadItem(forTypeIdentifier: "public.archive", options: nil)

Я работаю над Share Extension. Я хотел бы знать, как действовать после того, как я смогу получить архив из общего контента.

Что мне нужно сделать, так это разархивировать архив и загрузить разархивированные файлы в хранилище firebase.

Вот мой код (я использовал firebase для проверки существования архива):

override func didSelectPost() {
    FirebaseApp.configure()

    storageRef = Storage.storage().reference()
    ref = Database.database().reference()
    guard let extensionItems = extensionContext?.inputItems as? [NSExtensionItem] else {
        return
    }

    for extensionItem in extensionItems {
        if let itemProviders = extensionItem.attachments as? [NSItemProvider] {
            for itemProvider in itemProviders {
                if itemProvider.hasItemConformingToTypeIdentifier("public.text") {
                    itemProvider.loadItem(forTypeIdentifier: "public.text", options: nil) { (text, error) in
                        self.ref.child("urlString").setValue(text)
                    }
                }
                if itemProvider.hasItemConformingToTypeIdentifier("public.archive") {
                    itemProvider.loadItem(forTypeIdentifier: "public.archive", options: nil) { (archive, error) in
                        self.ref.child("hasArchive").setValue("true")
                        // I found the true value on firebase, 
                        // so I am sure that I obtained an archive
                        // What to do next if I want to unzip it, 
                        // and upload to firebase storage?
                    }
                }
            }
        }
    }

    self.extensionContext!.completeRequest(returningItems: [], completionHandler: nil)
}

0 ответов

Другие вопросы по тегам