如何使浏览器从 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?的主要内容,如果未能解决你的问题,请参考以下文章

如果从浏览器安装在手机上,如何导航移动应用程序

如何对 FLTK 中的小部件进行排序以使箭头键导航正常工作?

如何从导航控制器切换到选项卡控制器并使其成为根视图控制器

如何使导航栏从透明变为实心引导程序 5.1

微信小程序如何设置地图导航

如何使导航抽屉应用程序的标题居中?