小编Ahm*_*hit的帖子

iOS WebKit - 判断WebView是否已完全加载JS内容

我正在尝试从第三方 URL 解析出一些 HTML 元数据;然而,直到一些 Javascript 脚本在WKWebView.

所以我一直在尝试检测何时WKWebView用 Javascript 完全加载了网页,但不幸的是我无法做到。

这是我尝试过的:

  • 我尝试使用WKUserContentController并处理协议方法,但这不起作用,因为协议方法仅在收到脚本消息时执行,而不是在完成时执行。
  • WKWebView我尝试为's添加观察者estimatedProgress,但estimatedProgress在 JS 脚本加载完成之前返回 1.0。
  • 我尝试使用WKNavigationDelegate协议方法webView(_ webView: WKWebView, didFinish navigation: WKNavigation!),但它本质上与添加观察者相同。
  • 我还尝试在方法中使用WKWebViewsevaluateJavaScript方法observeValue来检查两者:
    • document.readyState == \"interactive\"
    • document.readyState == \"completed\"

但这也不起作用,因为它是在 JS 加载完成之前执行的。

代码

这是我尝试的最后一种方法的代码,但没有成功:

初始化WKWebView

        let webView = WKWebView(frame: self.view.frame)
        webView.addObserver(self, forKeyPath: "estimatedProgress", options: .new, context: nil)
        webView.load(URLRequest(url: url))
        webView.navigationDelegate = self
        self.view.addSubview(webView)
Run Code Online (Sandbox Code Playgroud)

处理观察者

override func observeValue(forKeyPath keyPath: …
Run Code Online (Sandbox Code Playgroud)

javascript webkit ios swift

5
推荐指数
1
解决办法
1626
查看次数

标签 统计

ios ×1

javascript ×1

swift ×1

webkit ×1