離上篇寫介紹pc端的混合開發和為什么以cefsharp入手研究混合開發已經有好幾天,一直忙,抽不出時間繼續寫怎么搭建cefsharp開發環境。其實沒有時間是借口,一切都是懶,沒有愛到深處。
今天繼續寫寫怎么搭建cefsharp環境,開發winform、web混合應用程序。
一、下載程序集dll。
程序集下載地址在https://www.nuget.org/packages/CefSharp.WinForms/37.0.0-pre02。可以通過nuget輕松獲得所有的依賴庫。如果的你的網絡不好,可以先下載,然后再在項目中添加引用。 最小的程序集以及資源需要如下圖
最簡單的方法是通過包獲取,Install-Package CefSharp.WinForms -Pre
二、把項目配置為x86或者x64目標平台
添加項目之后進行編譯,可以你會碰到下面這個錯誤。
CefSharp.Common does not work correctly on 'AnyCPU' platform. You need to specify platform (x86 / x64)。 這個錯誤其實是cefsharp的一個缺陷。cefsharpPic的項目團隊說以后會把這個bug修補。我們暫時現在把這個問題解決。 就是項目的目標平台改為x64 或者x86。
三、初始化cefsharp並創建添加ChromiumWebBrowser顯示網頁。
public partial class Form1 : Form
{
CefSharp.WinForms.ChromiumWebBrowser webCom = null;
public Form1()
{
InitializeComponent();
Load +=Form_Load;
}
protected void Form_Load(object sender, EventArgs e)
{
webCom = new CefSharp.WinForms.ChromiumWebBrowser("www.baidu.com");
webCom.Dock = DockStyle.Fill;
panel1.Controls.Add(webCom);
webCom.Load("www.baidu.com");
}
private void btn_multiChrome_Click(object sender, EventArgs e)
{ for (int i = 0; i < 5; i++) {
childForm child = new childForm();
child.Show();
}
}
}
這樣winfrom就可以顯示百度首頁了
四、個人初次搭建cefsharp環境的時候遇到的問題。
1、沒有在程序啟動的時候初始化cefsharp導致添加ChromiumWebBrowser控件顯示一片灰色。
2、bin目錄下沒有包含CefSharp.BrowserSubprocess.Core.dll、CefSharp.BrowserSubprocess.exe。關於這兩個資源文件的作用,有興趣可以了解
瀏覽器的多進程架構機制原理。這里給一個資料你可以了解,講解主流瀏覽器多進程架構機制:Chrome、IE。
下圖是我的驗證,打開多個ChromiumWebBrowser控件顯示網頁就加載多個CefSharp.BrowserSubprocess.exe進程。
這次先寫到這里。雖然文章沒有什么技術含量,但是是自己的實際經驗和技術的探索,還希望得到群友的支持,也自己如果在cefsharp繼續有什么收獲也會繼續在這里分享。