javascript - 显示 OpenLayers map 时 JavaFX WebView 不准确

标签 javascript java javafx webview openlayers-3

我有一个 JavaFX 应用程序,它将 OpenLayers 合并到其 WebView 中。我有一个简单的弹出窗口,当您将鼠标移到某个功能上时,它会显示该功能的名称。我面临的问题是 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,如 Gecko) JavaFX/8.0 Safari/602.1

最佳答案

WebView 似乎正在使用 Java Graphics 2D API 来渲染网页。运行一些测试后,很明显 JavaFX 的这个组件已经多年没有更新,因此无法与许多现代 Web 内容(例如 OpenLayers)一起使用。

我遇到的一个解决方案是切换到 JxBrowser,它在 Chromium 上运行。需要注意的是,JxBrowser 不是免费使用的,但它有 30 天的试用期。

关于javascript - 显示 OpenLayers map 时 JavaFX WebView 不准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43093698/

相关文章:

java - 如何从后台 worker 更新 fxml 标签?

java - 使圆形按钮的外轮廓更大

javascript - 获取 firebase getDownloadURL 返回

javascript - 仅当在多选中选择特定选项时才显示输入字段

javascript - 数据表添加多个子行

java - Java 中的自动格式化 HTML 字符串

javascript - 通过 Javascript WeakMaps 收集垃圾的缓存

java - 如何用java读取来自雅虎的未读电子邮件

java - 如何在SunPKCS11中获取 session 句柄

java - 使用 JavaFX 和 maven 将模块描述符添加到库中