Как получить результаты JS в webkit2gtk-4.0 в Vala?

Я использую webkit2gtk-4.0 в приложении Vala для отображения Google Maps. И мне нужно получить координаты маркера при нажатии кнопки. Как мне это сделать?

Я понял, как запустить JavaScript с помощью run_javascript(), но я не могу понять жарко, чтобы получить результаты этого.

1 ответ

Решение

Обычно для этого вам нужно использовать асинхронные функции Vala, я так думаю:

var result = yield webview.run_javascript(...);

Это эквивалентно функции C webkit_web_view_run_javascript_finish(),

К сожалению, вы не можете сделать следующий шаг, показанный по этой ссылке в Vala, так как вам нужно использовать API JavaScriptCore, чтобы получить возвращаемое значение, и этот API не доступен в Vala.

В этом случае вы можете прибегнуть к нескольким грязным трюкам. Одним из таких приемов является установка заголовка окна в конце скрипта Javascript и отслеживание уведомлений в веб-представлении. title недвижимость в Вала.

Тем не менее, вам может быть лучше написать небольшой кусочек кода на C, который вы компилируете в свое приложение Vala.

Другие вопросы по тегам