本篇基于winform
1.新建winform项目,更改默认Form1窗体为MainForm
2.安装CefSharp.WinForms
Install-Package CefSharp.WinForms -Version 98.1.210
3.MainForm.cs中引用命名空间
using CefSharp;
using CefSharp.WinForms;
4.贴代码,看注释
namespace MyCalc
{
public partial class MainForm : Form
{
public ChromiumWebBrowser chromeBrowser;//浏览器对象
public MainForm()
{
InitializeComponent();
InitializeChromium();//初始化浏览器
//注册js调用类
chromeBrowser.JavascriptObjectRepository.Register("toolBarJs",new ToolBarJs(chromeBrowser,this),true,BindingOptions.DefaultBinder);
}
//初始化浏览器并启动
public void InitializeChromium()
{
CefSettings settings = new CefSettings();
Cef.Initialize(settings);
//加载html
var index_htmlUrl = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName + @"\html\index.html";
chromeBrowser = new ChromiumWebBrowser(index_htmlUrl);
this.Controls.Add(chromeBrowser);
chromeBrowser.Dock = DockStyle.Fill;
}
//窗体关闭时,记得停止浏览器
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
chromeBrowser.CloseDevTools();//关闭开发者工具
Cef.Shutdown();
}
private void MainForm_Load(object sender, EventArgs e)
{
this.MaximizeBox = false; //禁用"最大化"按钮
this.FormBorderStyle = FormBorderStyle.FixedDialog; //设置窗体边框样式为对话框样式
}
}
}
5.ToolBar类
/// <summary>
/// 工具类
/// </summary>
public class ToolBarJs
{
private static ChromiumWebBrowser _instanceBrowser = null;
private static MainForm _instanceMainForm = null;
public ToolBarJs(ChromiumWebBrowser originalBrowser, MainForm mainForm)
{
_instanceBrowser = originalBrowser;
_instanceMainForm = mainForm;
}
public void showDevTools()
{
_instanceBrowser.ShowDevTools();//打开开发者工具
}
public void opencmd()
{
ProcessStartInfo start = new ProcessStartInfo("cmd.exe", "/c pause");
Process.Start(start);
}
}
6.js调ToolBar类中的方法
async function openDevTool() {
try{
await CefSharp.BindObjectAsync('toolBarJs');
toolBarJs.showDevTools();
}catch(e){
alert(e);
}
}
7.效果