从Eclipse的内部Web浏览器获取URL

Alt*_*ivc 4 java eclipse

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

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

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

Edw*_*son 5

使用的问题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);
    }
});
Run Code Online (Sandbox Code Playgroud)