#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’а.