Как сделать так, чтобы UIDocumentInteractionController мог открывать файлы в других приложениях, а не копировать их в другие приложения?
Я разрабатываю метод загрузки и обмена файлами с другими приложениями, используя UIDocumentInteractionController
, Но, как ни странно, все, что я могу получить, это "копировать" функции приложений, а не "открывать в" приложения. Если я нажму "Копировать в", ничего не произойдет, хотя я знаю, что за экраном происходит копирование файла в другое приложение. Но я не хочу, чтобы файл просто копировался. Я хочу, чтобы другое приложение фактически переключилось и открыло файл.
Это код, который я использую, чтобы загрузить и поделиться файлом:
Alamofire.download(url, to:destination)
.downloadProgress { (progress) in
print((String)(progress.fractionCompleted))
}
.responseData { (data) in
print("DOWNLOAD COMPLETED")
print("DESTINATION URL: \((data.destinationURL)!)")
print("DESTINATION PATH: \((data.destinationURL?.path)!)")
let documentController = UIDocumentInteractionController.init(url: (data.destinationURL)!)
documentController.delegate = self
documentController.presentOpenInMenu(from: CGRect.zero, in: self.view, animated: true)
}
Файл, который особенно загружен и представлен на скриншоте выше, является файлом.PDF.
3 ответа
Попытка открыть файлы в других приложениях может быть достигнута с помощью универсальных ссылок Apple. Они позволяют вам запускать другое приложение из вашего текущего приложения. При правильной реализации они позволяют открывать документ / файл в другом приложении на том основании, что другое приложение имеет метод обработки входящих универсальных ссылок и зарегистрировано для принятия типа документа / файла.
Отличный способ начать работу с Universal Links - попытаться интегрировать обмен документами из вашего файла, скажем, в Microsoft Word. Конкретную схему URL для использования в этом примере можно найти здесь. Есть много видео на YouTube, которые объясняют концепцию связывания, а также демонстрируют, как его реализовать.
Это может быть связано с проблемами доступности файла для других приложений. Мы столкнулись с той же проблемой, и мы смогли решить ее только после записи файла в каталог tmp / documents. Попробуйте включить разрешения, такие как "Общий доступ к файлам" и "Открыть на месте". Посетите этот блог: https://medium.com/if-let-swift-programming/managing-files-in-ios-dfcdfdc1f426
Здесь вы ничего не можете сделать. Файлы копируются в приложение или открываются в приложении в зависимости от того, что реализует само приложение-получатель: если приложение поддерживает открытое на месте (и ваш документ находится в доступном месте, например в каталоге "Документы"), вы должны открыться; Если приложение не поддерживает открытие на месте, оно будет скопировано.
Так что вам нужно лоббировать разработчиков приложений, с которыми вы хотите поделиться документами, чтобы принять их на месте.