我正在使用NuGet的GeckFX45为我的OAuth2登录主持一个网页。在测试没有互联网连接的行为时,我注意到我得到了一个浏览器生成的对话框,说明找不到该URL。我怎样才能抑制这种情况,我可以在不警告用户的情况下捕获并处理我的应用中的场景?
我的浏览器代码是非常标准的,但无论如何包含在这里的参数(注意我使用WPF而不是Win Forms因此主机控件):
public OAuthLogin2(OAuthActions action, string args = null)
{
this.action = action;
Gecko.Xpcom.Initialize("Firefox");
host = new WindowsFormsHost();
browser = new GeckoWebBrowser();
browser.DocumentCompleted += Browser_DocumentCompleted;
browser.Navigating += Browser_Navigating;
browser.NavigationError += Browser_NavigationError;
browser.NSSError += Browser_NSSError;
InitializeComponent();
host.Child = browser;
GridWeb.Children.Add(host);
}
我可以添加一个PromptService
,但这可能不起作用取决于语言;
public class NoPromptService : PromptService
{
public override void Alert(string dialogTitle, string text)
{
log.Warn(dialogTitle, new Exception(text));
if (text.EndsWith("could not be found. Please check the name and try again."))
{
// Do Whatever
}
}
}
在构造函数中添加:
PromptFactory.PromptServiceCreator = () => new NoPromptService();