Je me connecte à un site Web en utilisant WKWebView et maintenant je voudrais analyser le code HTML du site Web. Comment puis-je accéder aux sites Web html en swift? Je sais comment cela fonctionne pour un UIWebView mais pas pour WKWebView.
Merci de votre aide!
Si vous attendez que la page soit chargée, vous pouvez utiliser:
webView.evaluateJavaScript("document.documentElement.outerHTML.toString()",
completionHandler: { (html: Any?, error: Error?) in
print(html)
})
Vous pouvez également injecter du javascript qui vous renvoie le code HTML.
let script = WKUserScript(source: javascriptString, injectionTime: injectionTime, forMainFrameOnly: true)
userContentController.addUserScript(script)
self.webView.configuration.userContentController.addScriptMessageHandler(self, name: "didGetHTML")
…
func userContentController(userContentController: WKUserContentController,
didReceiveScriptMessage message: WKScriptMessage) {
if message.name == "didGetHTML" {
if let html = message.body as? String {
print(html)
}
}
}
Le javascript que vous pouvez injecter ressemble à ceci:
webkit.messageHandlers.didGetHTML.postMessage(document.documentElement.outerHTML.toString());
Un autre exemple
wkWebView.evaluateJavaScript("document.body.innerHTML", completionHandler: { (value: Any!, error: Error!) -> Void in
if error != nil {
//Error logic
return
}
//let result = value as? String
//Main logic
})
obtenez HTML de UIWebView
mettre du HTML dans UIWebView
mettre du HTML dans WKWebView