iOS / Swift: в чем разница для совместного использования PDF-файла / данных через UIActivityViewController - PullRequest
0 голосов
/ 27 июня 2018

Я загружаю данные PDF из удаленного URL и отображаю их в WKWebView.

Теперь я добавляю функцию совместного использования и рассматриваю разницу в том, чтобы делиться этими загруженными данными как Данные и как Файл , хранящийся в папке / tmp на диске.

Кажется, что оба способа работают

А)

  1. получить данные
  2. создать контроллер UIActivityViewController с элементами ActivityItem: [pdfData]

B)

  1. получить данные
  2. сохранить данные в каталоге / tmp
  3. получить URL к файлу tmp
  4. создать 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-документа.

1 Ответ

0 голосов
/ 27 июня 2018

По моему мнению, у меня возникает такой же вопрос, когда я делюсь одним файлом, который я скачал, и храню в директории документов и открываю в UIActivityViewController, и при совместном использовании он покажет мне приложение по умолчанию, которое Apple рекомендует для совместного использования, но мне нужны другие Сторонние приложения, чтобы использовать этот файл для обмена, я использую UIDocumentInteractionController, и он покажет мне все другие связанные приложения для обмена файлами. Я предполагаю, что для совместного использования UIActivityViewController предоставляет список приложений по умолчанию для совместного использования с UIDocumentInteractionController.

...