我想从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);