Эта функция найдет HTML из строки URL в фоновом потоке (чтобы не блокировать ваш пользовательский интерфейс), после обработки вы можете обновить свой пользовательский интерфейс в основном потоке:
func getHtml(_ urlString: String, completion: @escaping (String?, Error?) -> Void) {
DispatchQueue.global(qos: .userInitiated).async(execute: {
guard let url = URL(string: urlString) else {
print("URLError: \(urlString) doesn't seem to be a valid URL")
return completion(nil, URLError.init(URLError.Code.badURL))
}
do {
let html = try String(contentsOf: url, encoding: .ascii)
print("HTML: \(html)")
return completion(html, nil)
} catch let error {
print("Error: \(error)")
return completion(nil, error)
}
})
}
Использование:
getHtml("https://www.google.com", completion: { html, error in
if let e = error {
print(e)
// handle your error
return
}
print(html as Any)
DispatchQueue.main.async {
//update your UI on the main thread
}
})
ОБНОВЛЕНИЕ:
Вы действительно должны очищать веб-контент на стороне сервера. iOS не позволит вам сделать это без представления WKWebView.
В iOS вам потребуется загрузить javascript в функцию didFini sh WKWebView, если вам нужны такие данные, как Chrome Функция «Осмотреть»:
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
let doc = webView.evaluateJavaScript("document.documentElement.outerHTML", completionHandler: { html, error in
print(html)
})
}