嵌入并与浏览器交互,如Java应用程序中的视图

时间:2012-05-20 12:04:11

标签: java javascript browser embed

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

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

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

我有没有办法:

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

我发现了有关如何在swing应用程序中嵌入浏览器的其他问题(例如Embedding web browser window in Java),而JDIC似乎能够做到这一点。虽然有些人报告很难让它在OSX(我使用的操作系统)中运行,但没有提到是否可以通过JavaScript与浏览器进行交互。

在我看来,在Android中可以从Java(Android)端进行JavaScript调用,因此在普通Java中也可能这样做。

感谢任何指针!

2 个答案:

答案 0 :(得分:2)

如果您可以使用swt,请查看SWT Browser widget

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

答案 1 :(得分: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。