Я загружаю данные PDF из удаленного URL и отображаю их в WKWebView.
Теперь я добавляю функцию совместного использования и рассматриваю разницу в том, чтобы делиться этими загруженными данными как Данные и как Файл , хранящийся в папке / tmp на диске.
Кажется, что оба способа работают
А)
- получить данные
- создать контроллер UIActivityViewController с элементами ActivityItem: [pdfData]
B)
- получить данные
- сохранить данные в каталоге / tmp
- получить URL к файлу tmp
создать UIActivityViewController с ActivityItems: [pdfFileUrl]
private func sharePDFData(from barButtonItem: UIBarButtonItem) {
guard let pdfData = self.pdfData else { return }
let activityViewController = UIActivityViewController(activityItems: [pdfData], applicationActivities: nil)
activityViewController.popoverPresentationController?.barButtonItem = barButtonItem
activityViewController.popoverPresentationController?.permittedArrowDirections = .up
self.present(activityViewController, animated: true, completion: nil)
}
И
private func sharePDFFile(from barButtonItem: UIBarButtonItem) {
guard let pdfFileUrl = self.pdfTempFileUrl() else { return }
print("PDF temp file url:", pdfFileUrl)
if FileManager.default.fileExists(atPath: pdfFileUrl.path) {
let activityViewController = UIActivityViewController(activityItems: [pdfFileUrl], applicationActivities: nil)
activityViewController.popoverPresentationController?.barButtonItem = barButtonItem
activityViewController.popoverPresentationController?.permittedArrowDirections = .up
self.present(activityViewController, animated: true, completion: nil)
}
}
Единственное отличие, которое я вижу, состоит в том, что, используя временное хранилище файлов, я могу изменить имя файла общего PDF-документа.