eclipse插件中的SWT Browser在Mac和Windows中表现不同

时间:2015-03-29 00:02:52

标签: java eclipse browser eclipse-plugin swt

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

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

现在我想在Windows上采用相同的行为,但我永远无法成功。点击链接后没有任何反应。如果我删除了监听器,当我点击舔,而不是我想要的时候,会打开一个Internet Explorer窗口。

我在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();
}

1 个答案:

答案 0 :(得分:1)

使用BrowserSWT.NONE

在Windows 7上运行正常
public static void main(String[] args)
{
    Display display = new Display();

    final Shell shell = new Shell(display);
    shell.setText("StackOverflow");
    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>