Я пытаюсь перехватить поставленный ajax pdf файл с веб-сайта, защищенного аутентификацией.Поскольку ajax доставляет файл, URL-адрес не содержит ссылку «.pdf» для загрузки, а скорее доставляет файл PDF в виде вложения с размещением содержимого.
На данный момент, когда метод делегата definePolicyFor navigationResponse обнаруживает «application / pdf "mimetype, я вызываю методvaluJavaScript со следующим кодом:
func readUrlContent(url: NSURL, completionHandler: @escaping (_ result: String) -> Void) {
self.evaluateJavaScript("(function() { var result = ''; $.ajax({type: 'GET', url: '\(url)', contentType: 'application/pdf; charset=utf-8', success: function(r) {result = r}, failure: function() {result = null}, async: false }); return result })()", completionHandler: { (response, error) -> Void in
let result = response as! String
completionHandler(result)
})
}
С этим внедренным кодом (который я использую, потому что у меня были проблемы с файлами cookie и аутентификацией на веб-сайте с использованием WKWebView), я могууспешно распечатать двоичную строку PDF, возвращенную как «результат» в обработчике завершения в журнал.Теперь проблема в том, что мне нужно получить эти двоичные данные в формате PDF с помощью PDFKit.
Когда я беру эту двоичную строку и выполняю:
self.data = result.data(using: .utf8)
self.performSegue(withIdentifier: "pdfSegue", sender: nil)
И передаю двоичную строку PDF в PDFKit ViewController, чтобы отобразить ее, все страницы отображаются пустыми, и я получаю следующие ошибки:
"обнаружен непредвиденный тип объекта: 7."
"отсутствует или недопустим номер объекта."
"отсутствует или недопустим поток перекрестных ссылок."
"недопустимая длина потока 3555; должно быть 6444."
"FlateDecode: ошибка декодирования: неверная проверка заголовка."
и т. Д.и т. д. и т. д.
Как / как получить эти двоичные данные в формате PDF и просмотреть их с помощью PDFKit?