Сохранение html-данных в переменной из обработчика завершения в Swift WKWebView - PullRequest
0 голосов
/ 20 мая 2018

Я пытаюсь очистить данные с веб-сайта, и данные, которые мне нужны, находятся в теге 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 Ответ

0 голосов
/ 12 октября 2018

Оценка JavaScript занимает некоторое время у WKWebView.В этом случае оператор print(str), скорее всего, выполняется до оценки сценария JS.Попробуйте переместить его в обработчик завершения вашего оператора оценки и посмотрите, работает ли он.

...