我需要知道如何使用参数从 JavaScript 向上调用 JavaFX。一些示例代码:
JSObject script = (JSObject) webEngine.executeScript("window");
script.setMember("app", SignIn(arg1, arg2));
private boolean SignIn(String uid, String passwd) {
boolean signedIn = false;
System.out.println("Signing In");
return signedIn;
}
html
<html>
<body>
<a onclick="app.SignIn(uid, passwd)">Click to sign in</a>
</body>
</html>
此代码不起作用。
最佳答案
线路
script.setMember("app", SignIn(arg1, arg2));
好像是错的。尝试一下
script.setMember("app", new SignInManager());
其中 SignInManager 是一个包含 SignIn(String uid, String passwd) 方法的类。您可以在这一行上打个比方:
app = new SignInManager();
然后在 JavaScript 代码中使用它
app.SignIn(uid, passwd)
点击事件。因此(作为对下面评论的回复)您实际上是在此处将参数从 javascript 代码传递到 Java 代码。
按照惯例,方法名称应以小写字母开头,如signIn(String uid, String passwd)。
关于带参数的 JavaFX JavaScript 上行调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14764139/