[英]JavaFX WebView inaccurate when displaying OpenLayers maps
我有一个将OpenLayers合并到其WebView中的JavaFX应用程序。 我有一个简单的弹出窗口,当您将鼠标移到它上面时会显示该功能的名称。 我面临的问题是,WebView内部发生的任何事情都是非常不准确的。 例如,当弹出一个弹出窗口时,它不会在鼠标离开该功能后立即消失。 我准备了一个小小的要点, 在这里强调了这个问题。 我在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版本view.getEngine().getUserAgent()
: Mozilla/5.0 (Linux x86_64) AppleWebKit/602.1 (KHTML, like Gecko) JavaFX/8.0 Safari/602.1
WebView似乎正在使用Java Graphics 2D API来呈现网页。 在运行一些测试之后,很明显JavaFX的这个组件多年来一直没有更新,因此无法使用很多现代Web内容,比如OpenLayers。
我遇到的一个解决方案是切换到JxBrowser,而不是在Chromium上运行。 应该注意的是,JxBrowser不能免费使用,但它确实有30天的试用期。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.