Да.
Вот так можно отследить кнопку “Войти” на этом форуме.
class ViewController: UIViewController, WKScriptMessageHandler, WKNavigationDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let config = WKWebViewConfiguration()
let contentController = WKUserContentController()
config.userContentController = contentController
let webView = WKWebView(frame: view.frame, configuration: config)
webView.navigationDelegate = self
view.addSubview(webView)
webView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
contentController.add(self, name: "callbackHandler")
webView.load(URLRequest(url: URL(string: "https://forum.swiftbook.ru")!))
}
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
guard message.name == "callbackHandler" else { return }
print("Hello")
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
let js = """
document.getElementsByClassName("widget-button btn btn-primary btn-small login-button btn-icon-text")[0].addEventListener("click", () => {
window.webkit.messageHandlers.callbackHandler.postMessage("")
})
"""
webView.evaluateJavaScript(js, completionHandler: nil)
}
}