winform製作瀏覽器過程
阿新 • • 發佈:2020-12-10
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 巢狀瀏覽器頁面中,監聽事件,事件回撥很難除錯。