.net使用cefsharp開源庫開發chrome瀏覽器(二)


      離上篇寫介紹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繼續有什么收獲也會繼續在這里分享。

 

 

 

 

 

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM