javascript - 在 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 作为函数不存在。为什么代码不起作用?
解决方案
我假设您展示的第一个代码片段是rtc.js
您使用@JavaScript
. 该文件缺少的是它应该将自己注册为该特定 Java 类的连接器。
该文件应如下所示:
window.java_package_name_VideoCall = function() {
var connector = this;
connector.test = function() {
alert('Hello world!');
}
}
替换为 的类java_package_name
的包名称在哪里。VideoCall
.
_
推荐阅读
- java - 在不知道绝对路径的情况下访问文件,只知道文件名
- xamarin.forms - 在 CollectionView 中横向填充项目,每个项目都以 xamarin 形式呈现屏幕宽度
- python - 通过使用列值反转列名称来重塑数据框
- purescript - 为什么 PureScript traceM 从以前的值打印字符串?
- python - 解释为什么我无法从另一个子模块导入其他子模块
- excel - 使用 VBA 解析 HTML 以删除文本
- omnet++ - 了解 omnet++ 和静脉中的 .msg 文件
- android - 无法使我的圆形菜单看起来像提供的图像
- amazon-web-services - Terraform - 出现错误:您的查询未返回任何结果。请更改您的搜索条件,然后重试
- postgresql - 用于检测 INTERVAL 的重叠时间范围的 PostgreSQL 查询