Kow*_*ser 5 javascript java javafx
我正在使用WebEngine和WebView来自JavaFX.现在我想使用内部运行的javascript来执行Java WebEngine.
我的问题是,是否有可能这样做,如果是的话有任何提示.
我想做类似下面的事情
<script type="text/javascript">
function runSampleJava() {
var number = new java.lang.Integer(1234);
var random = new java.util.Random();
java.lang.System.out.println(random.nextInt());
}
</script>
Run Code Online (Sandbox Code Playgroud)
现在如果我调用runSampleJava()内部WebEngine它将执行该代码.
Rhinojava的JavaScript引擎JSObject window = (JSObject) webEngine.executeScript("window");等等.但这不是我要找的.我没有设法创建 Java 实例,但我设法将 Java 创建的对象实例推送到 JavaScript 中并回调它们。
所以我的 Java 代码如下所示:
JSObject win = (JSObject) engine.executeScript("window");
win.setMember("jHelper", new JavaHelper());
Run Code Online (Sandbox Code Playgroud)
JavaHelper示例(必须是公开的):
public static class JavaHelper {
public int newInteger(int input) {
// ...
}
public Random newRandom() {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
然后在 JavaScript 中:
function bla() {
var number = jHelper.newInteger(1234);
var random = jHelper.newRandom();
// ...
}
Run Code Online (Sandbox Code Playgroud)
您可以在https://github.com/tomsontom/fx-ide/tree/master/at.bestsolution.javafx.ide.editor上看到我在 Java 和 JavaScript 之间来回通信的工作,并在 http://github.com/tomsontom/fx-ide/tree/master/at.bestsolution.javafx.ide.editor 上看到我的工作,并在http://github.com/tomsontom/fx-ide/tree/master/at.bestsolution.javafx.ide.editor上看到我的工作。 /tomsondev.bestsolution.at/2012/10/29/eclipsecon-javafx-demo-app-videos/
| 归档时间: |
|
| 查看次数: |
3195 次 |
| 最近记录: |