SWT 3.5M6 中有一个新的侦听器,称为 AuthenticationListener。它只是侦听从服务器传递的身份验证事件并被触发。下面的代码是执行我想要的行为的代码。它等待身份验证,如果主机是我的应用程序,它会传回凭据。当然,用适当的变量填写 USER_NAME、PASSWORD 和 HOST_NAME。否则,它会弹出浏览器身份验证对话框并让用户输入凭据。此代码也可以在 Eclipse SWT 片段页面中找到:
webBrowser.addAuthenticationListener(new AuthenticationListener()
{
public void authenticate(AuthenticationEvent event) {
try {
URL url = new URL(event.location);
if (url.getHost().equals(HOST_NAME))
{
event.user = USER_NAME;
event.password = PASSWORD;
}
else
{
/* do nothing, let default prompter run */
}
} catch (MalformedURLException e) {
/* should not happen, let default prompter run */
}
}
});