首页 > 解决方案 > 在 Vaadin Java 应用程序中使用 JavaScript

问题描述

我想在我的 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 作为函数不存在。为什么代码不起作用?

标签: javascriptvaadin

解决方案


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

该文件应如下所示:

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

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

替换为 的类java_package_name的包名称在哪里。VideoCall._


推荐阅读