Проблема с навигацией в WKWebView Swift - PullRequest
0 голосов
/ 31 марта 2020

Я использую WKWebView для моего WebViewController в своем приложении, и я обнаружил одну проблему с одним URL "http://www.viator.com/tours/San-Francisco/San-Francisco-Vista-Grande-Helicopter-Tour/d651-3538VISTAGRANDE?eap=brand-subbrand-75523&aid=vba75523en", при переходе по другому событию навигация по веб-сайту отсутствует. страница ничего не происходит У кого-нибудь есть идеи о том, как с этим бороться?

1 Ответ

1 голос
/ 01 апреля 2020

Если вы говорите о ссылках, открывающихся в новом окне, действительно, они не создают новое действие навигации. Но вы все равно можете перехватить их и загрузить запрос вручную.

Если у вашего веб-просмотра уже нет пользовательского uiDelegate, назначьте его контроллеру представления или что-то еще, а затем сделайте что-то вроде этого:

extension SomeViewController: WKUIDelegate {

  func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
    // Intercept target=_blank links
    guard
      navigationAction.targetFrame == nil,
      let url = navigationAction.request.url else {
        return nil
    }

    let request = URLRequest(url: url)
    webView.load(request)

    return nil
  }
}
...