C#ChromimunFX:如何创建multiTab浏览,并在每个标签之间隔离?

时间:2016-05-15 10:13:29

标签: c# winforms webbrowser-control chromium-embedded

我正在尝试将嵌入式浏览器用于我的WinForms应用程序。我使用CefSharp ChromiumWebBrowser,它工作得很好。但是,CEFSharp需要Visual C ++ 2013或Visual C ++ 2008 ......我认为它是一个复杂的依赖项。我正在创建一个没有依赖环境的便携式应用程序。

我发现另一个类似CefSharp的库也使用Chrominum,名为ChromiumFX(访问:https://bitbucket.org/chromiumfx/chromiumfx)。该库使用.Net Framework 3.5(Windows 7中默认可用),无需安装Visual C ++。它适用于我的应用程序。

但我找不到用这个库创建多标签应用程序的方法。这是我试图做的:

private void LifeSpanHandler_OnBeforePopup(object sender, CfxOnBeforePopupEventArgs e)
 {
     e.SetReturnValue(true);
     tabPage2.InvokeOnUiThreadIfRequired(() =>
     {
         ChromiumWebBrowser b = new ChromiumWebBrowser(e.TargetUrl);
         b.Dock = DockStyle.Fill;
         tabPage2.Controls.Add(b);
     });
}

InvokeOnUiThreadIfRequired是一种扩展方法:

public static void InvokeOnUiThreadIfRequired(this Control control, Action action)
 {
     if (control.InvokeRequired)
     {
         control.BeginInvoke(action);
     }
     else
     {
         action.Invoke();
     }
}

但是应用程序错误和程序崩溃了。

另一件事,当我创建一个新的ChromiumWebBrowser实例时,我希望它与另一个实例隔离,这意味着不要使用相同的cookie,与任何实例的会话(私有浏览器)。在CefSharp中,只需为新实例创建一个新的RequestContext:

webbrowser.RequestContext = new RequestContext();

但是在ChromiumFX中,我找不到任何办法!

有人帮助我吗?谢谢你的帮助!

0 个答案:

没有答案