【发布时间】:2019-11-04 12:41:26
【问题描述】:
我来自 C# 背景。我们有一个叫做WebBrowser 的控件,它可以加载 HTML 页面并使用 C# 与 Javascript 交互。
我想使用 Java 与 HTML / Javascript 页面进行交互。是否有任何众所周知的用于 Java 的 WebBrowser 控件/对象或库?
【问题讨论】:
我来自 C# 背景。我们有一个叫做WebBrowser 的控件,它可以加载 HTML 页面并使用 C# 与 Javascript 交互。
我想使用 Java 与 HTML / Javascript 页面进行交互。是否有任何众所周知的用于 Java 的 WebBrowser 控件/对象或库?
【问题讨论】:
https://docs.oracle.com/javafx/2/webview/jfxpub-webview.htm 我认为这是您正在寻找的小部件。来自官方 JavaFX 网站。
【讨论】:
有很多选择,包括商业和开源解决方案。
JavaFX 在 Java 8-10 中可用。它provides 和WebView 控件可以嵌入到您的JavaFX 应用程序中以显示HTML 和网页。它基于 WebKit 并使用 Java 图形 API 离屏 呈现 HTML。这是lightweight。在 Java 11 中,JavaFX 不再可用。它被提取到一个单独的项目中——OpenJFX。
在 Windows、macOS、Linux 上运行。
这是一个商业图书馆。它providesBrowserView 控制 Swing、JavaFX、SWT。它基于 Chromium,因此现代网页看起来与 Google Chrome 中的完全一样。它支持两种rendering modes:离屏(轻量级)和硬件加速(GPU加速,重量级)。
在 Windows、macOS、Linux、Linux 64 位 ARM 上运行。
这是一个开源库,代表CEF (C/C++) 的 Java 端口。据我所知,它只支持 Swing。它基于 Chromium,因此现代网页看起来与 Google Chrome 中的完全一样。
在 Windows、macOS、Linux 上运行。
有什么区别?
2018 年 Sebastian Barth 比较了不同的 Java 库,包括 JavaFX、JCEF、JxBrowser 等,并在Browser Integration in Java Applications 文章中分享了结果。
【讨论】:
还有一个选项 - https://github.com/shannah/webviewjar - 非常薄的库,利用操作系统内置的浏览器,因此整个库不到 1mb - macOS、Windows 和 Linux 原生 shims 都在一个 jar 中。
p>【讨论】: