在Swift中是否可以检查WKWebView是否有特定的文本?

Is it possible to check whether WKWebView has a specific text on it in Swift?

我正在开展一个项目,该项目将在网络视图中显示一个网站,该网站的设计旨在保持 iPhone 在上下文中,并且只有一个 URL 在其中完成所有检查服务器。我有一个屏幕,上面有一些文字,例如"Age"。对于这个特定的页面,我想添加一个用于共享应用程序的选项卡栏按钮。

您应该将 evaluateJavaScriptthis answer 中的代码一起使用,returns 当前页面中的所有文本。之后,您可以使用 contains 来获取特定页面是否包含您要查找的文本。

不要忘记导入 WebKit 并使您的 class 符合 WKNavigationDelegate

func loadWebView() {
    let webView = WKWebView()
    webView.navigationDelegate = self
    view.addSubview(webView)
    let urlRequest = URLRequest(url: URL(string: "http://example.com")!)
    webView.load(urlRequest)
}

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    webView.evaluateJavaScript("document.body.innerText") { result, error in
        if let resultString = result as? String,
            resultString.contains("Age") {
                //site contains the text "Age"
            }
        }
    }
}