Я только что создал PDF-документ в своем приложении и хочу сохранить документ на устройстве таким образом, чтобы приложение «Файлы» могло получить доступ к сохраненному документу.
Когда вы загружаете PDF-документ в Safari, есть возможность сохранить документ в приложении «Файлы», что я и пытаюсь сделать.
Я искал в Google несколько часов, но не смог найти никаких полезных методов.
Попробуйте UIDocumentInteractionController
:
let doc = UIDocumentInteractionController(url: url)
doc.presentOptionsMenu(from:in:animated:)
Есть опция под названием save to Files
.
Если у вас есть доступ к вашему PDFdata
, вы можете предоставить пользователю UIActivityViewController
, где они могут затем сохранить его на Files
, или поделиться им с любым из других доступных вариантов:
let activityViewController = UIActivityViewController(activityItems: ["Name To Present to User", pdfData], applicationActivities: nil)
present(activityViewController, animated: true, completion: nil)
у меня нет папки "на моем iphone", как программно создать папку ???
Я использую PDFKit. Как я могу получить PDFData и сохранить PDF в файлах?
@EktaPadaliya, посмотри мой ответ.
как установить собственное имя файла pdfData? Спасибо
Пользуюсь этим решением stackoverflow.com/questions/54026866/… Спасибо stackoverflow.com/users/1131021/joeybladb
Минимум iOS 11
Приложение «Файлы» было представлено в iOS 11. У вас не будет возможности сохранения в «Файлы», если вы используете версию ниже iOS 11. При этом документы можно загружать в различные приложения в зависимости от настройки, доступные на телефоне пользователя, и разрешенные вами параметры.
@available(iOS 11.0, *)
func savePDF() {
guard let documentData = document.dataRepresentation() else { return }
let activityController = UIActivityViewController(activityItems: [documentData], applicationActivities: nil)
self.present(activityController, animated: true, completion: nil)
}
Это пример способа сохранить документ. Вы не можете принудительно загрузить его и отобразить в приложении «Файлы». Вы должны представить UIActivityViewController
, который показывает варианты того, что они могут делать с этим документом.
Если вы хотите исключить какие-либо параметры, показанные на UIActivityViewController
, реализуйте excludedActivityTypes
следующим образом.
activityController.excludedActivityTypes = [.airDrop, .postToTwitter]
пожалуйста, посмотрите stackoverflow.com/a/51764198/7276810