Javascript - 如何处理java方法调用返回?

时间:2017-11-22 17:25:22

标签: codenameone

又一个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"});
        }

非常感谢。

电子

1 个答案:

答案 0 :(得分:0)

来自JSFunction的JavaDocs:

  

如果需要Javascript的返回值,可以通过传递JSFunction调用的回调函数和一些参数来实现。

这不太理想,但我不确定是否有办法绕过它,因为数据传输可能是异步的。