WinForm窗體程序中使用CefSharp獲取加載后的資源、截取request參數、攔截response數據、注入jquery文件和js代碼(1)-使用CefSharp


一、開發環境

1、本機,win7 x64, .net 4.6,vs2019

2、源碼地址:源代碼csdn  或者底部qq問我要。或者 百度網盤   udbk

二、安裝cefsharp

1、新建一個winform窗體程序,從nuget中搜索cefsharp並安裝

 

 2、修改項目屬性為x86

在解決方案上,右鍵鼠標,選擇屬性,更改項目屬性為x86,沒有x86選項就在圖中配置管理器中新建

 

 

 

 

 3、重新生成項目,無錯誤

三、cefsharp基本使用,初始化、加入網址瀏覽、關閉、獲取加載后的資源

1、初始化

        public static string url = "https://www.baidu.com";//設置進入網頁
        public ChromiumWebBrowser browser = new ChromiumWebBrowser(url);//初始化cefsharp瀏覽器
        public Form1()
        {
            InitializeComponent();

            browser.Dock = DockStyle.Fill;//設置填充滿窗體
            this.Controls.Add(browser);//把cefsharp加入到窗體中
        }

運行,就展示了百度的首頁

 

 

 

 

 

 2、關閉事件

在窗體的關閉事件中,要釋放cefsharp的資源

 private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            CefSharp.Cef.Shutdown();
        }

 3、獲取加載后的資源。在瀏覽器FrameLoadEnd事件中處理

 public void Init(string url, int? insertIndex = null)
        {
            browser.Dock = DockStyle.Fill;
           
            panbrowser.Controls.Add(browser);
            browser.RequestHandler = new WinFormsRequestHandler(Init);
           
            browser.FrameLoadEnd += webBrowser_FrameLoadEndEventArgs;
        }
        /// <summary>
        /// 頁面加載完成
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void webBrowser_FrameLoadEndEventArgs(object sender, FrameLoadEndEventArgs e)
        {
            string htmlstr = string.Empty;
            if (e.Frame.IsMain)
            {
                browser.GetSourceAsync().ContinueWith(taskHtml =>
                {
                    htmlstr = taskHtml.Result;
                });
            }
           
        }

 


免責聲明!

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



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