Предварительный просмотр PDF в Swift iOS: изучение различных методов

В этой статье мы рассмотрим различные методы реализации функции предварительного просмотра PDF в приложении Swift для iOS. Мы предоставим примеры кода для каждого метода, что позволит вам выбрать подход, который лучше всего соответствует вашим потребностям. Итак, давайте углубимся и узнаем, как включить предварительный просмотр PDF-файлов в ваше приложение для iOS!

Метод 1: UIDocumentInteractionController
Класс UIDocumentInteractionController предоставляет встроенный способ предварительного просмотра файлов, включая PDF-файлы. Вот пример того, как его использовать:

import UIKit
class ViewController: UIViewController, UIDocumentInteractionControllerDelegate {
    var documentController: UIDocumentInteractionController!
    override func viewDidLoad() {
        super.viewDidLoad()

        let pdfPath = Bundle.main.path(forResource: "example", ofType: "pdf")
        let url = URL(fileURLWithPath: pdfPath!)

        documentController = UIDocumentInteractionController(url: url)
        documentController.delegate = self
        documentController.presentPreview(animated: true)
    }
// MARK: - UIDocumentInteractionControllerDelegate

    func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
        return self
    }
}

Метод 2. Платформа QuickLook
Среда QuickLook предоставляет мощный набор API-интерфейсов для предварительного просмотра файлов различных типов, включая PDF-файлы. Вот как вы можете его использовать:

import UIKit
import QuickLook
class ViewController: UIViewController, QLPreviewControllerDataSource {
    var previewController: QLPreviewController!
    override func viewDidLoad() {
        super.viewDidLoad()

        previewController = QLPreviewController()
        previewController.dataSource = self
        previewController.currentPreviewItemIndex = 0

        self.present(previewController, animated: true, completion: nil)
    }
// MARK: - QLPreviewControllerDataSource

    func numberOfPreviewItems(in controller: QLPreviewController) -> Int {
        return 1
    }

    func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem {
        let pdfPath = Bundle.main.path(forResource: "example", ofType: "pdf")
        let url = URL(fileURLWithPath: pdfPath!)
        return url as QLPreviewItem
    }
}

Метод 3: WKWebView
Если вам нужен больший контроль над предварительным просмотром PDF, вы можете использовать WKWebView для отображения содержимого PDF. Вот пример:

import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
    var webView: WKWebView!
    override func viewDidLoad() {
        super.viewDidLoad()

        let pdfPath = Bundle.main.path(forResource: "example", ofType: "pdf")
        let url = URL(fileURLWithPath: pdfPath!)

        let request = URLRequest(url: url)

        webView = WKWebView(frame: view.bounds)
        webView.navigationDelegate = self
        webView.load(request)

        view.addSubview(webView)
    }
// MARK: - WKNavigationDelegate

    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        // PDF content loaded
    }
}

В этой статье мы рассмотрели три различных метода реализации функции предварительного просмотра PDF в приложении Swift для iOS. Мы рассмотрели использование UIDocumentInteractionController, платформы QuickLook и WKWebView. Каждый метод имеет свои преимущества, поэтому выберите тот, который лучше всего соответствует вашим требованиям. Включив предварительный просмотр PDF-файлов в свое приложение, вы сможете улучшить взаимодействие с пользователем и обеспечить беспрепятственный доступ к важным документам.