WkWebView не загружает ссылки на PDF-файлы - PullRequest
0 голосов
/ 11 октября 2019

WKWebView не загружает ссылки. Я связываю пользователей со страницей политики конфиденциальности, и на этой странице есть группа ссылок. Все ссылки являются PDF-файлами, размещенными на wix. На Safari и Chrome это работает, но не на WKWebView. Когда страница загружается и вы нажимаете на ссылки, я просто получаю сообщение об ошибке:

Unknown result for URL 0x28157d110 (https)

Вот как я загружаю веб-представление ...

webView.load(URLRequest(url: URL(string: "https://mywebsite.io/legal")!))

РЕДАКТИРОВАТЬ:Это отличается от других вопросов , потому что я не собираюсь скачивать PDF-файл - я просто хочу отобразить его так же, как Safari.

РЕДАКТИРОВАТЬ: я только заменил WKWebView на UIWebView (устарел) и загрузка PDF. Проблема с WKWebView. PDF-файлы с поддержкой ssl https ->

let req = URLRequest(url: URL(string: "https://mywebsite.io/legal")!)
    legacyWebView.loadRequest(req)

РЕДАКТИРОВАТЬ: здесь есть страница Как открыть ссылку на PDF с wkwebview , которая предполагает, что вы должны знать URL ссылкиПеред открытием PDF я не думаю, что это правда.

РЕДАКТИРОВАТЬ: У меня реализовано 2 метода делегирования, в том числе предложенный ниже @Kiril. Ссылки на PDF-файлы по-прежнему не открываются.

func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
        decisionHandler(WKNavigationActionPolicy.allow)
    }
    func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {
        decisionHandler(WKNavigationResponsePolicy.allow)
    }

1 Ответ

0 голосов
/ 12 октября 2019

Одна вещь, которую я могу предложить (не уверен, что это поможет, но слишком долго для комментариев), это попытаться реализовать WKNavigationDelegate's decidePolicyFor:

// WKNavigationDelegate
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
    decisionHandler(.allow)
}

Если это поможет, то сделайте эту функцию более детальнойто есть, какую навигацию вам нужно включить только для PDF-файлов, а не для всего остального в мире.

...