iOS WebKit WKWebView скачать - PullRequest
       4

iOS WebKit WKWebView скачать

0 голосов
/ 17 февраля 2020

Я создал адаптивный веб-сайт, на котором пользователь без входа в систему может загружать PDF-файлы. Когда пользователь нажимает на тег href (<a href="https://mysite/test/GetDocumentFile?type=PDF&docId=xxx">test</a>), он запускает процесс загрузки. На любом настольном браузере он работает и начинает загрузку. Я также протестировал веб-просмотр android, и он работает. Очевидно, что в этом случае в студии android я дал разрешение на хранение и добавил слушатель для загрузки ... и он загрузил файл в хранилище смартфона android (я не хочу показывать его в веб-просмотре) , Я не нашел никакого решения для iOS веб-просмотра. Я использовал Xcode с swift 4. Он отображает веб-приложение, но когда я нажимаю тег href, он отображает PDF, но у меня нет возможности сохранить его в какую-либо папку (например, папка для скачивания). Проблема с приведенным выше кодом заключается в том, что после того, как веб-просмотр отображает pdf-файл правильно, я нажимаю кнопку, а затем NSData(contentsOf: URL(string: documentPathToLoad)!) пытаюсь загрузить файл снова, но это дает мне nil ... действительно, если каким-то образом я могу получить данные PDF уже отображается в веб-обозревателе. Я думаю, что мой код будет работать нормально.

import UIKit
import WebKit

class ViewController: UIViewController, WKNavigationDelegate {

    @IBOutlet weak var webView: WKWebView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let url = "mysite"
        let request = URLRequest(url: URL(string: url)!)

        webView.navigationDelegate = self

        self.webView.load(request)

    }

func savePdf(urlD: String) throws {
    let documentPathToLoad = "https://mysite/test/GetDocumentFile?type=PDF&docId=xxx"
    let documentsURL = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
    let pdfDocURL = documentsURL.appendingPathComponent("documento.pdf")
    let pdfData = NSData(contentsOf: URL(string: documentPathToLoad)!)
    try pdfData?.write(to: pdfDocURL)
    loadPDFAndShare()
}

}
...