2

我想知道如何在 Java 客户端应用程序中嵌入类似视图的浏览器,同时我可以通过 JavaScript 与它进行交互。引发此问题的问题如下:

我的应用程序的界面由(谷歌)地图和一些 svg 的东西组成。这在浏览器中很容易做到。但是,我还需要访问一些特殊的 Java 库,这些库可以处理地图中的某些信息(例如,地图中的某些坐标)并回答应该影响浏览器视图的值(例如,应该在地图上绘制路径) .

我的第一个想法是将 Java 端行为实现为 REST Web 服务,因此我将通过 JavaScript 调用此 Web 服务,发送有关地图的相关信息并使用答案更新地图。然而,对于我目前的需求(这只是一个原型),使用 web 服务有点过多的基础设施。

有没有办法我可以:

  • 在我的 Java 应用程序中嵌入类似视图的浏览器。
  • 通过在浏览器视图中显示的网页中实现的 JavaScript 函数从 Java 端与该视图交互(例如这些函数会影响页面在浏览器视图中的呈现) ?。

我发现了与如何在 swing 应用程序中嵌入浏览器相关的其他问题(例如,在 Java 中嵌入 Web 浏览器窗口),而JDIC似乎能够做到这一点。尽管有些人报告说它很难在 OSX(我使用的操作系统)中运行,并且没有提及是否可以通过 JavaScript 与浏览器交互。

在我看来,在 Android 中可以从 Java (Android) 端进行 JavaScript 调用,所以这在纯 Java 中可能也是可能的。

感谢您的任何指示!

4

2 回答 2

2

如果您可以使用 swt,请查看SWT Browser 小部件

对于 javascript,您可以使用 http://www.mozilla.org/rhino/

于 2012-05-20T12:11:17.800 回答
2

使用 Java FX 2,您可以。你在那里得到一个 webkit webview。可以使用 java<->javascript 来回交互。

有关嵌入谷歌地图的示例,请参见:http: //java-buddy.blogspot.se/2012/03/embed-google-maps-in-javafx-webview.html

如果您还不想使用 100% JavaFX,可以使用JFXPanel将 java fx 嵌入到 swing 中。

于 2012-05-20T12:13:41.383 回答