Сохранение HTML-данных в переменной из обработчика завершения в Swift WKWebView
Я пытаюсь собрать данные с веб-сайта, и данные, которые я хочу, находятся в теге span. Пока что я сделал:
var str: Any?
webView.evaluateJavaScript("innerDoc.getElementById(spanId).innerHTML", completionHandler:
{ (html: Any?, error: Error?) in
str = html
})
print(str)
Но когда я делаю это, я просто получаю ноль. Если я поставлю print(html)
на месте str = html
Я получаю вывод, который хочу.
Что я здесь не так делаю? Почему я не могу сохранить это значение в переменной?
1 ответ
Оценка JavaScript занимает WKWebView некоторое время. В этом случае print(str)
Оператор, скорее всего, имеет место до оценки сценария JS. Попробуйте переместить его в обработчик завершения вашего оператора оценки и посмотрите, работает ли он.