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

时间:2018-02-11 11:04:04

标签: ios webkit wkwebview

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

1 个答案:

答案 0 :(得分:2)

您应该将evaluateJavaScriptthis answer中的代码一起使用,该代码会返回当前页面中的所有文本。之后,您可以使用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"
            }
        }
    }
}
相关问题