如何使浏览器从 Java 小程序导航到给定的 URL?
Posted
技术标签:
【中文标题】如何使浏览器从 Java 小程序导航到给定的 URL?【英文标题】:How can I cause the browser to navigate to a given URL from a Java applet? 【发布时间】:2010-10-14 06:00:38 【问题描述】:我有一个 Java 小程序,它由一个类似向导的表单组成,包含三个步骤。在最后一步,用户可以单击“完成”按钮。我希望该按钮使网络浏览器导航到特定的 URL。
问题:有没有办法让浏览器导航到特定的 URL,这样它就可以在所有现代浏览器上运行?我的特定浏览器要求是 FF3+、IE7+、Safari 3+ 和 Opera 9+。我正在使用 Java 1.5。
【问题讨论】:
【参考方案1】:从小程序中,您可以简单地获取小程序上下文并调用showDocument(url)。
这将从当前页面导航到指定的 URL:
getAppletContext().showDocument(url);
此外,您还可以传递target 参数。
要访问相对 URL,您可以使用:
URL url = new URL(getCodeBase().getProtocol(),
getCodeBase().getHost(),
getCodeBase().getPort(),
"/next.html");
getAppletContext().showDocument(url);
这些适用于自 Java 1.1 版以来的所有主流浏览器。
【讨论】:
【参考方案2】:您可以在 javascript 中启动向导,并让小程序在单击“完成”按钮时将执行流程返回给 JavaScript 调用者。使用 JavaScript 后,您可以通过表单发布或更改 window.location 属性导航到新位置。
在最坏的情况下,您可以检查LiveConnect 的使用情况,但我会用一根 10 英尺长的杆子碰它。
LiveConnect 更新
原来的 LiveConnect 似乎在本质上仅限于在 Windows 上运行的浏览器,并且可能仅适用于 NN 和 IE。 Some of those bugs have been fixed recently,但浏览器兼容性仍将是一个问题。
【讨论】:
【参考方案3】:如果您使用的是 Java 6 及更高版本,请参阅Desktop API。这将驱动浏览器。但是我不知道小程序安全模型是否会干扰这个。
除此之外,我成功地使用了BrowserLauncher2。类似的警告也适用。
【讨论】:
【参考方案4】:String googleURL = "https://www.google.com/";
try
java.awt.Desktop.getDesktop().browse(java.net.URI.create(googleURL));
catch(IOException ex)
Logger.getLogger(UI.class.getName()).log(Level.SEVERE,null, ex);
【讨论】:
以上是关于如何使浏览器从 Java 小程序导航到给定的 URL?的主要内容,如果未能解决你的问题,请参考以下文章