javax.script传递给javascript一个Java方法作为回调
javax.script pass to javascript a Java method to use as a callback
我使用javax。将javascript代码嵌入到Java方法中。
在我的项目中,javascript通过websocket发送异步http请求。一旦收到响应,我需要执行回调函数。
我想调用一个用Java编写的方法作为回调。
在这里的文档:http://docs.oracle.com/javase/6/docs/technotes/guides/scripting/programmer_guide/它解释了如何在javascript中为接口实现java方法,但没有说明如何从javascript中调用java方法。
谢谢
不确定这是否正是您正在寻找的,但这里有一个代码示例,提供java对象回调到一些javascript代码中,然后在稍后调用该回调:
public class JsCallback{
public static void main(String[] args) throws Exception{
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
engine.put("cb", new JsCallback());
engine.eval("println('Doing something in javascript here first');" +
"cb.apply('bar');");
}
public void apply(String s){
System.out.println("Back in java code here: " + s);
}
}
在Java 8中使用Function
:
JS:
run = function(callback) {
callback("foo");
}
Java: Function<String,String> fn = (arg) -> {
return arg.toUpperCase();
};
// call run(fn)
invokeFunction("run", fn)
你也可以使用Runnable(无参数或返回值)和许多其他单方法接口作为回调接口。根据我的理解,它将尝试找到一个动态匹配参数列表的方法。
相关文章:
- 错误405:向Java控制器(Ajax)发送JSON时找不到POST方法
- GWT:有没有一种方法可以修改GWT在编译中使用的Cast.java文件
- 是否有一种方法可以使用公共代码库在Java和JavaScript中进行输入验证
- java安全doPrivileged方法如何阻止任意脚本
- Javascript到Java NullPointerException虚拟方法
- Java Script将对象方法映射到数组中的对象
- GWT:可以从外部JavaScript而不是JSNI调用Java方法吗
- Java eqivalent method of “splice(a,b,..)“在 JavaScript 方法中
- 在java实现中寻找javascript md5方法
- 将permute方法从Java转换为JavaScript
- jQuery(或Javascript)基于给定的C#/VBA/Java格式字符串格式化数字的方法
- 如何在纯Java环境中处理JSNI方法
- 如何从将在html页面中使用的java脚本中调用java类方法
- 如何在JavaScript函数中将字符串参数传递给Java方法
- 将Java回调函数传递给JSNI方法
- java脚本错误对象没有'不支持此属性或方法
- 如何在Javascript中调用Java方法
- 从Javascript调用Java方法
- 在javascript中调用java方法
- 从Android WebView调用java方法