winform制作浏览器过程
1.依赖
1.1.依赖包
三个缺一不可
2.开始制作
2.1.新建winform页面
2.2.页面代码
public partial class WebBrowser : UserControl
{
public WebBrowser()
{
InitializeComponent();
IntStart();
}
/// <summary>
/// 初始化浏览器
/// </summary>
private void IntStart()
{
CefSettings cefSettings = new CefSettings();
//cefSettings.Locale = "zh_CN";
//cefSettings.CachePath = "cache";
cefSettings.IgnoreCertificateErrors = true;
cefSettings.CefCommandLineArgs.Add("enable-media-stream", "1");//enable webRTC 启用多媒体
//Cef.Initialize(cefSettings, true, new BrowserProcessHandler());
Cef.Initialize(cefSettings, true,true);//这里有坑,如果引入的版本比较高的话,需要调整参数,而且 Cef.Initialize 方法只允许初始化一次,建议放在Program 中初始化。
string urlPath = "https://www.baidu.com";
Cef.AddCrossOriginWhitelistEntry(urlPath, "https", "cefsharp.com", false);
ChromiumWebBrowser browser = new ChromiumWebBrowser(urlPath) //
{
Location = new Point(0, 0),
MinimumSize = new Size(20, 20),
Size = new Size(200, 300),
Name = "浏览器",
Dock = DockStyle.Fill,
TabIndex = 5,
KeyboardHandler = new KeyBoardHander(),
DownloadHandler = new DownloadHandler(),
MenuHandler = new MenuHandler(),
RequestHandler = new RequestHandler(),
LifeSpanHandler = new LifeSpanHandler(),
};
//browser.RegisterJsObject("bound", new BoundObject());//可监控页面的事件,目前js框架无法实现互通。
Controls.Add(browser);
}
}
顺带提一句:目前winform 嵌套浏览器页面中,监听事件,事件回调很难调试。