在Vaadin Java应用程序中使用JavaScript

时间:2019-02-08 11:00:17

标签: javascript vaadin

我想在Java Web应用程序中使用Kurento WebRTC javascript客户端。

但是我什至无法在Java应用程序中调用简单的javascript函数。我想念什么?

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!')");

我看到一个带有消息“ Hello world!”的窗口。当我将test更改为foo作为callFunction中的参数时,尽管foo作为函数不存在,但没有收到错误消息。 为什么代码不起作用?

1 个答案:

答案 0 :(得分:1)

假设您显示的第一个代码段是使用rtc.js包含的@JavaScript文件。该文件缺少的是它应该将自身注册为该特定Java类的连接器。

文件应如下所示:

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

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

其中java_package_nameVideoCall类的.的程序包名称,用_代替。