Сохранить документ в приложении "Файлы" в быстром

Я просто создал документ pdf в своем приложении, и я хочу сохранить документ в устройстве таким образом, чтобы приложение "Файлы" могло получить доступ к сохраненному документу.

Я видел это в сафари, когда мы загружаем документ в формате PDF, есть возможность сохранить документ в приложении File, мне нужно просто так

Googled в течение нескольких часов, но не нашел полезных методов

Ответ 1

Если у вас есть доступ к PDFdata, вы можете предоставить пользователю UIActivityViewController, где они смогут сохранить его в Files или поделиться им с любым из других доступных вариантов:

let activityViewController = UIActivityViewController(activityItems: ["Name To Present to User", pdfData], applicationActivities: nil)
present(activityViewController, animated: true, completion: nil)

enter image description here

Ответ 2

Минимум 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]

Ответ 3

Попробуйте UIDocumentInteractionController:

let doc = UIDocumentInteractionController(url: url)
doc.presentOptionsMenu(from:in:animated:)

Там есть опция с именем save to Files.