eclipse 插件中的 SWT 浏览器在 Mac 和 Windows 中的行为不同

SWT Browser in eclipse plugin behaves differently in Mac and Windows

我在我的 Eclipse 插件项目中使用了 SWT 浏览器。它在显示本地生成的 HTML 的视图中显示浏览器。在 Mac 上一切正常。我可以使用代码

在同一浏览器中打开本地 link
browser.addOpenWindowListener(new OpenWindowListener() {
  public void open(WindowEvent event) {
    event.browser = browser;
    event.required = true;
  }
});

现在我想在 Windows 上执行相同的操作,但我永远无法成功。单击 link 时没有任何反应。如果我删除侦听器,则在我单击舔时会打开 Internet Explorer window,这不是我想要的。

我在 windows 中看到 SWT 浏览器使用的是 IE 样式。我在 windows 中阅读了有关如何制作 Mozilla 风格浏览器的文章。但我不希望用户做任何额外的设置或安装任何其他东西。

有人有解决办法吗?

编辑:显示本地 html 文件的示例代码

String url = "C:\Users\myname\runtime-EclipseApplication\tt\target\Results.html";
try {
  URI uri = new File(url).toURI();
  URL urls = uri.toURL();
  browser.setUrl(urls.toString());
} catch (MalformedURLException e) {
  e.printStackTrace();
}

这在 Windows 7 上使用 BrowserSWT.NONE:

时效果很好
public static void main(String[] args)
{
    Display display = new Display();

    final Shell shell = new Shell(display);
    shell.setText("Whosebug");
    shell.setLayout(new FillLayout());

    Browser browser = new Browser(shell, SWT.NONE);

    String url = "start.html";
    try
    {
        URI uri = new File(url).toURI();
        URL urls = uri.toURL();
        browser.setUrl(urls.toString());
    }
    catch (MalformedURLException e)
    {
        e.printStackTrace();
    }

    shell.pack();
    shell.setSize(400, 300);
    shell.open();

    while (!shell.isDisposed())
    {
        if (!display.readAndDispatch())
        {
            display.sleep();
        }
    }

    display.dispose();
}

这是start.html的内容:

<a href="./test.html">Click here</a>

以及test.html的内容:

<h1>HELLO</h1>