我在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();
}
答案 0 :(得分:1)
使用Browser
和SWT.NONE
:
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>