从Eclipse内部Web浏览器获取URL

时间:2011-09-30 10:36:09

标签: java eclipse

我一直很难搞清楚这个问题。 我在eclipse中编写了一个插件,它启动了Eclipse的内部Web浏览器。到目前为止,我已经打开了内部网络浏览器:

IWebBrowser browser = PlatformUI.getWorkbench().getBrowserSupport().createBrowser(IWorkbenchBrowserSupport.LOCATION_BAR, null,"Expert Viewer", "Validation");
browser.openURL(new URL(some url));

我想获取在浏览器中打开的当前页面的网址。我该如何做到这一点?

1 个答案:

答案 0 :(得分:6)

使用IWorkbenchBrowserSupport的问题在于您无法保证获得内部浏览器。如果内部浏览器不可用,或者工作台配置为使用它等,它可能会打开外部浏览器。

如果您知道自己总是需要内部浏览器(并且您只支持内部浏览器始终可用的平台),那么您可以放弃IWorkbenchBrowserSupport界面并只使用org.eclipse.swt.browser.Browser小部件。然后你可以连接一个LocationListener,例如:

Browser browser = new Browser(parent, SWT.NONE);
browser.addLocationListener(new LocationListener() {
    public void changing(LocationEvent event)
    {
        System.out.println("Navigating to: " + event.location);
    }

    public void changed(LocationEvent event)
    {
        System.out.println("Location is: " + event.location);
    }
});