1. 程式人生 > >winform利用CefSharp呼叫google瀏覽器核心ChromiumWebBrowser,與JS互動

winform利用CefSharp呼叫google瀏覽器核心ChromiumWebBrowser,與JS互動

一開始用了自帶的webbrowser,不支援H5,指令碼會有問題,後來又用了webkitBrowser,發現有些js效果還是顯示不出來,和webbrowser稍微好一點,但是還是不行,然後決定用CefSharp,用了之後效果完美。

原始碼地址:https://download.csdn.net/download/horseroll/10801280

方法一:通過Nuget程式包引入CefSharp.Winforms(行不通)

我引入了CefSharp.Winforms後,系統只引用了Microsoft.Sharp這個dll,沒有引用其他的dll,後面程式碼編寫引用會出錯,所以不推薦此方法

方法二:直接引入(親測可用)

1.建立winform程式,需要注意的是需要使用.NetFrameWork4.5.2以上

2.在解決方案上右鍵->"屬性"->"生成"->"目標平臺",選擇x86或x64,Cef暫不支援"Any CPU"。如果平臺裡沒有x86,在生成-配置管理器中的平臺進行新建平臺,

需要注意的是如果新建平臺,debug目錄會生成新建平臺的資料夾,注意到時候檔案的存放位置

3.下載並解壓CefSharp編譯好的檔案,注意是32位還是64位。

4.將下載下來的檔案解壓,然後全部複製到程式bin\Debug目錄。注意檔案的存放位置

5.專案右鍵"新增引用",新增以下dll:

CefSharp.dll
CefSharp.Core.dll

CefSharp.WinForms.dll

6.編寫測試程式碼:

using CefSharp;
using CefSharp.WinForms;      
 
public ChromiumWebBrowser browser;
public void InitBrowser(){
    Cef.Initialize(new CefSettings());
    browser = new ChromiumWebBrowser ("www.baidu.com");
    this.Controls.Add(browser);
    browser.Dock = DockStyle.Fill;

}

在InitializeComponent()方法中呼叫 InitBrowser()。

7.F5除錯執行即可。

8.與js互動

_browser.GetBrowser().MainFrame.EvaluateScriptAsync("test_val=" + new Random().Next().ToString("F")); //設定頁面上js的test_val變數為隨機數
_browser.GetBrowser().MainFrame.EvaluateScriptAsync("testArg('123','我是NET' )");//執行頁面上js的testArg帶引數的方法
_browser.GetBrowser().MainFrame.EvaluateScriptAsync("test()");//執行頁面上js的test方法