我有一个应用程序使用WebView
及其支持WebEngine
来显示一个包含一些JavaScript函数的简单网页。我还有另一个线程,有时从互联网接收消息。我希望这些使用webengine.executeScript()
在网页上触发脚本。
我的问题是JavaFX线程模型不允许在主UI线程之外的任何其他线程上运行它,并抛出异常。我查看了属性,任务,服务,但似乎没有人做我需要的。脚本快速执行 - 让它在UI线程上运行不是问题,但我不知道如何将消息传递给UI线程。
答案 0 :(得分:1)
您可以使用Platform.runLater():
Platform.runLater(new Runnable() {
@Override
public void run() {
webEngine.executeScript("foo()")
}
});