0
点赞
收藏
分享

微信扫一扫

CefSharp入门(一)计算器案例

秦瑟读书 2022-03-23 阅读 53
数据库

本篇基于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.效果
效果

举报

相关推荐

0 条评论