在Swift中是否可以检查WKWebView是否有特定的文本?
Is it possible to check whether WKWebView has a specific text on it in Swift?
我正在开展一个项目,该项目将在网络视图中显示一个网站,该网站的设计旨在保持 iPhone 在上下文中,并且只有一个 URL 在其中完成所有检查服务器。我有一个屏幕,上面有一些文字,例如"Age"。对于这个特定的页面,我想添加一个用于共享应用程序的选项卡栏按钮。
您应该将 evaluateJavaScript
与 this 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"
}
}
}
}
我正在开展一个项目,该项目将在网络视图中显示一个网站,该网站的设计旨在保持 iPhone 在上下文中,并且只有一个 URL 在其中完成所有检查服务器。我有一个屏幕,上面有一些文字,例如"Age"。对于这个特定的页面,我想添加一个用于共享应用程序的选项卡栏按钮。
您应该将 evaluateJavaScript
与 this 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"
}
}
}
}