WKWebView - не загрузка страницы из веб-просмотра - PullRequest
0 голосов
/ 08 мая 2019

Я отображаю веб-страницу в WKWebView. Загружается успешно. На странице есть 3 кнопки - X, Y, Z. При нажатии X и Y, web view меняет содержимое, как и должно быть. При нажатии Z ничего не происходит. Я попробовал ту же ссылку в Safari Mobile. X и Y работают так же, как в WKWebView. Z перенаправляет на другую страницу. Последнее не происходит в приложении. Что может быть не так? Заранее спасибо.

Для загрузки отображаемой страницы я использую:

if let url = URL(string: <My_URL>) {
    let request = URLRequest(url: url)
     wkWebView.load(request)
}

NSAllowsArbitraryLoads установлено на true

Ответы [ 2 ]

0 голосов
/ 17 мая 2019

Вам нужен этот метод WKUIDelegate метод -

    webView.uiDelegate = self   // set this before loading the original url, e.g. in viewDidLoad() of vc

Затем добавьте этот метод в ваш контроллер представления -

    func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
       // Ideally you should create another WKWebView on the fly and provide that web view instance in return statement
       // WebKit automatically loads the target url in this webview.
       return webView
    }

Источник: https://developer.apple.com/documentation/webkit/wkuidelegate

0 голосов
/ 08 мая 2019

Реализовали ли вы методы WKNavigationDelegate ?

При нажатии кнопки Z должен вызываться этот метод (в противном случае, возможно, что-то в вашем WEB-коде или конфигурации WKWebView неверно)

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

Если все происходит правильно, вы можете исследовать некоторые проблемы по этим

func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error)

func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error)
...