Как поймать httpBody в WKWebView решитьPolicyForNavigationAction? - PullRequest
0 голосов
/ 06 декабря 2018

Я перешел с UIWebView на WKWebView в приложении для iOS.Webview загружает удаленный документ, который содержит форму POST.Как только форма отправлена, PDF создается с помощью PHP.

Чтобы иметь возможность правильно загрузить и показать этот PDF, мне нужно перехватить содержимое POST при отправке формы - и выполнить URLRequest вручную, чтобы загрузить файл.

Я могу перехватить запрос следующим образом, но httpBody в приведенном ниже коде пуст:

func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: ((WKNavigationActionPolicy) -> Void)) {

     var request = navigationAction.request

     if (request.httpMethod == "POST") {
           request.httpBody // <-- is EMPTY

           // as the httpBody is empty, the request below does not get the required result anymore

           Alamofire.request(request).responseData { response in
                ...
                let pdfData : Data = response.result.value!
                ...
                let docController = UIDocumentInteractionController(url: urlToLocalPdfFile)
                docController.delegate = self
                docController.presentPreview(animated: true)
           }
     }
}

Это уже работало с UIWebView.Есть ли способ получить доступ к httpBody в приведенном выше коде или какой-либо обходной путь для загрузки PDF (как описано выше)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...