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

iDe*_*per 0 webkit ios wkwebview

我正在开发一个项目,该项目将在 Web 视图中显示一个网站,该网站的设计将 iPhone 置于上下文中,并且只有一个 URL,所有检查都在服务器上完成。我有一个屏幕,上面有一些文字,例如“年龄”。对于这个特定页面,我想添加一个标签栏按钮来共享应用程序。

Tam*_*gel 5

您应该使用此答案中evaluateJavaScript的代码,它返回当前页面中的所有文本。之后,您可以使用获取特定页面是否包含您要查找的文本。contains

不要忘记导入WebKit并使您的类符合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"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)