Использование JavaScript в Java-приложении Vaadin - PullRequest
0 голосов
/ 08 февраля 2019

Я хочу использовать JavaScript-клиент Kurento WebRTC в моем веб-приложении на Java.

Но мне даже не удается вызвать простую функцию JavaScript в моем Java-приложении.Чего мне не хватает?

var connector = this;

connector.test = function() {
    alert('Hello world!');
}

Вот код Java:

import com.vaadin.ui.AbstractJavaScriptComponent;


@JavaScript({"rtc.js", "jquery-1.12.3.min.js"})
public class VideoCall extends AbstractJavaScriptComponent {

    public VideoCall() {

    }

    public void testMethod() {
        callFunction("test");
        //Page.getCurrent().getJavaScript().execute("alert('Hello world!')");
        System.out.println("testMethod executed!");
    }

}

Когда я не рекомендую

Page.getCurrent().getJavaScript().execute("alert('Hello world!')");

, я получаю окно с сообщением «Здравствуйте,Мир!".Когда я изменяю test на foo в качестве аргумента в callFunction, я не получаю сообщение об ошибке, хотя foo не существует как функция.Почему код не работает?

1 Ответ

0 голосов
/ 08 февраля 2019

Я предполагаю, что первый фрагмент кода, который вы показали, это файл rtc.js, который вы включаете с помощью @JavaScript.Чего не хватает в этом файле, так это в том, что он должен зарегистрировать себя как соединитель для этого конкретного класса Java.

Файл должен выглядеть следующим образом:

window.java_package_name_VideoCall = function() {
  var connector = this;

  connector.test = function() {
    alert('Hello world!');
  }
}

, где java_package_name - это пакетимя класса VideoCall с . замененным на _.

...