我想在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作为函数不存在,但没有收到错误消息。 为什么代码不起作用?
答案 0 :(得分:1)
假设您显示的第一个代码段是使用rtc.js
包含的@JavaScript
文件。该文件缺少的是它应该将自身注册为该特定Java类的连接器。
文件应如下所示:
window.java_package_name_VideoCall = function() {
var connector = this;
connector.test = function() {
alert('Hello world!');
}
}
其中java_package_name
是VideoCall
类的.
的程序包名称,用_
代替。