Завершение работы WKWebView вызывалось несколько раз при загрузке содержимого в WebView

#ios #swift #webview #wkwebview #swift5

#iOS #swift #webview #wkwebview #swift5

Вопрос:

Я использую WKWebView для представления веб-контента, но делегат didFinish вызывается несколько раз, предоставляя функции и методы делегирования WKWebView.Также прикреплена привязка консоли отладки.

      func showWebview() {
        self.webview.addSubview(loadingOverlay.activityIndicator)
        self.loadingOverlay.showOverlay(view: (UIApplication.shared.keyWindow!))
        let urlString = URL(string: data ?? "")
        let request = URLRequest(url: urlString!)
        self.webview.load(request)
     }


 
  extension  PresentWebview: UIWebViewDelegate, WKUIDelegate {

 func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: 
 WKNavigation!) {
    ActivityCount  = 1
}

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    ActivityCount -= 1
       DispatchQueue.main.asyncAfter(deadline: .now()   0.1) { [weak self] in
           if self?.ActivityCount == 0 {
            print("This is called")
            self?.loadingOverlay.hideOverlayView()
           }
       }
    }

}
 

введите описание изображения здесь

Комментарии:

1. Я думаю self?.loadingOverlay.hideOverlayView() , что это вызывает проблему. Не могли бы вы, пожалуйста, прокомментировать эту строку и проверить, не мешает ли она вызываться несколько раз?

2. Нет, я проверил это also.@zoha131

3. Также попробуйте не добавлять никаких вложенных представлений в WebView.

4. Попробуйте это: gist.github.com/apple-avadhesh/12200dff778717e3beb5b268cdd338f7

5. пробовал и с этим, получаю ту же проблему @rtxgamer’а.