在 GeckFX45 中抑制 "yourdomain.com could not be found" 对话框
Suppress "yourdomain.com could not be found" dialog in GeckFX45
我正在使用 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();
我正在使用 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();