1

我们的团队目前正在考虑使用哪个 JavaScript Engine Bridge。我们在LiquidCoreJ2V8之间进行选择。我的问题是关于 j2v8。假设我必须在 JavaScript 中创建一些 java 类的几个实例,如何j2v8使用标准实例化注释(new ClassName())来实现这一点?在 Liquidcore 中,您可以使用超级构造函数绑定一些扩展JSFuction的类:

JSFunction(JSContext ctx, final String methodName, final Class<?extends JSObject> instanceClass)

并使用所需的类名注册属性,如下所示:

jsBaseContext.getJsContext().property("WebSocket", this);

然后打电话:

var x = new WebSocket();

java方法methodName将触发,我们将获得新的instanceClass作为JSValue对象作为参数,已经绑定并准备好在javascript中使用。

4

1 回答 1

0

由于没有人会讨论这个话题,我会回答自己。此功能目前不考虑在官方 J2V8 版本中添加,但是在Mizumi 的 pull request上有一个分支。所以,看看,如果你遇到过类似的问题。

于 2017-09-11T10:02:17.447 回答