又一个javascript集成问题。我不知道如何从我的java方法返回一个值,以便在javascript代码中使用它。你能帮忙吗?
{
//My java method
JSObject dataObj = (JSObject) ctx.get("{}");
dataObj.set("length", new JSFunction() {
@Override
public void apply(JSObject self, Object[] args) {
/*
Here, say I want to return the string length.
return args[0].toString().length();
*/
}
});
ctx.set("window.java", dataObj);
}
{
String fn = "{ uf : function(a){ var l = java.length(a);}}";
JSObject obj = (JSObject) ctx.get(fn);
Object result = obj.call("uf", new Object[] {"Hello"});
}
非常感谢。
电子
答案 0 :(得分:0)
来自JSFunction的JavaDocs:
如果需要Javascript的返回值,可以通过传递JSFunction调用的回调函数和一些参数来实现。
这不太理想,但我不确定是否有办法绕过它,因为数据传输可能是异步的。