我正在制作一个基于 Web 的应用程序,它支持 Java 来支持一些特定的请求(例如,在每次不选择打印机的情况下进行打印),并且有些东西让我发疯。
我使用 JavaFX 来实例化浏览器对象,一切正常,但当然我需要从 JavaScript 到 Java 进行回调,代码如下:
...
...
we.getLoadWorker().stateProperty().addListener( new ChangeListener<Worker.State>()
{
@Override
public void changed(ObservableValue<? extends State> observable, State oldValue, State newValue)
{
if ( newValue == Worker.State.SUCCEEDED )
{
bridge = new Bridge();
JSObject jsobj = (JSObject) we.executeScript( "window" );
jsobj.setMember( "app", new Bridge() );
}
if ( newValue == Worker.State.CANCELLED )
{
System.out.println( newValue );
System.out.println( "An error accourred" );
}
}
});
...
...
这可行,但几分钟后桥完全正常工作,javascript无法再进行回调,如果我尝试在“app”对象上发出警报(),它会返回未定义的我。我正在使用JDK9