我有一个将OpenLayers合并到其WebView中的JavaFX应用程序。我有一个简单的弹出窗口,当您将鼠标移到它上面时会显示该功能的名称。我面临的问题是,WebView内部发生的任何事情都是非常不准确的。例如,当弹出一个弹出窗口时,它不会在鼠标离开该功能后立即消失。我已经准备了一个小小的要点,强调了这个问题here。我在JavaFX for WebView中使用此代码:
private void initialize() {
WebView view = new WebView();
webEngine = view.getEngine();
URL urlOpenLayers = getClass().getResource("/html/trainmap.html");
webEngine.setJavaScriptEnabled(true);
webEngine.load(urlOpenOpenLayers.toExternalForm());
}
我在这里发布了这个而不是GIS StackExchange,因为这似乎是一个JavaFX WebView问题而不是OpenLayers的问题。相同的代码可以在Chrome中使用。
当我致电view.getEngine().getUserAgent()
时,这是我的WebView版本: Mozilla/5.0 (Linux x86_64) AppleWebKit/602.1 (KHTML, like Gecko) JavaFX/8.0 Safari/602.1
答案 0 :(得分:0)
WebView似乎正在使用Java Graphics 2D API来渲染网页。在运行一些测试后,很明显JavaFX的这个组件多年来一直没有更新,因此无法使用很多现代Web内容,比如OpenLayers。
我遇到的一个解决方案是切换到JxBrowser,而不是在Chromium上运行。应该注意的是,JxBrowser不能免费使用,但确实有30天的试用期。
答案 1 :(得分:0)