JxBrowser JSFunction.invoke with object



我想从Java调用JavaScript函数,将函数传递给对象。我希望做的是:

JSObject obj = new JSObject(); obj.setString("property1", "value); obj.setNumber("property2", number); 并通过jsfunction.invoke()方法将对象传递到JavaScript函数。但是JSObject显然没有默认构造函数,也没有诸如" setString"之类的方法。同上用于jsonstring。

我最终使用了Google GSON库来构建一个JSON字符串,然后将其传递给" New Jsonstring()"。你有更好的方法吗?

我希望您的文档解决这一点,而不是强迫我发明此解决方案。不是我想花点时间。

这是一个代码示例,演示了如何创建对象并为其设置一些属性:

Browser browser = new Browser();
browser.executeJavaScript("function foo(object) { console.log(object.property1); }");
JSObject object = browser.executeJavaScriptAndReturnValue("new Object()").asObject();
object.setProperty("property1", "value 1");
object.setProperty("property2", 15);
JSFunction function = browser.executeJavaScriptAndReturnValue("window.foo")
        .asFunction();
function.invoke(null, object);

相关内容

最新更新