第一次使用CEF做个Demo

本文介绍了如何在C# WinForm应用中集成CefSharp库,从新建项目到解决AnyCPU兼容问题,再到初始化代码和JS交互,展示了CefSharp的基本用法。利用CefSharp可以打造美观的跨平台UI,定制专用浏览器,并实现客户端程序的混合模式。

1)使用VS2013,新建一个winform程序,然后用NutGet安装cefsharp.winform包;

2)添加后,直接运行会报错,因为Cefsharp没有针对AnyCpu的模式,所以将程序的生成目标平台改成x64(x86根据自己需要)

(点击生成--〉选项目所在的平台(默认只有AnyCpu),没有X64或者X86,自己可以新建一个目标平台;

3) 初始化代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private CefSharp.WinForms.ChromiumWebBrowser theBrowser;
        private void Form1_Load(object sender, EventArgs e)
        {
            theBrowser = new CefSharp.WinForms.ChromiumWebBrowser(@"D:\test\WindowsFormsApplication1\WindowsFormsApplication1\HTMLPage1.html");
            theBrowser.Dock = DockStyle.Fill;
            this.Controls.Add(theBrowser);
            //theBrowser.GetBrowser().MainFrame.
            //theBrowser.RegisterJsObject("JsObj", new JsEvent(this.theBrowser), false);
            theBrowser.RegisterAsyncJsObject("JsObj", new JsEvent(this.theBrowser), false);
           
        }
    }
}

4)其中的JsObj类:

public class JsEvent
    {
        public string MessageText = string.Empty;
        private CefSharp.WinForms.ChromiumWebBrowser OwnerBrowser;
        public JsEvent(CefSharp.WinForms.ChromiumWebBrowser OwnerBrowser)
        {
            this.OwnerBrowser = OwnerBrowser;
        }
        public void ShowTest()
        {
            this.OwnerBrowser.GetBrowser().MainFrame.ExecuteJavaScriptAsync("abc();");
            
        }
    }


5) 加载的Html文件内容:

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
<script type="text/javascript">
    function abc()
    {
        alert("hello");
    }
    function DoA(a)
    {
        JsObj.MessageText = a;
        JsObj.ShowTest();
    }
</script>
</head>
<body>
    <input type="text"  value="hello"/>
    <input type="text" value="dddd" />
    <input type="button" title="测试" value="click" onclick="DoA('ddd');" />
</body>
</html>


以上就是一个基本的的C#使用CefSharp的例子:

1)包含了基本设置;

2)如何加载或者初始化Cef 浏览器

3)C#与页面之间的互相调用方法。


利用Cef的好处还是很多的,基本的如下:

1)对于客户端程序,可以实现非常漂亮的可以移植和跨平台的UI;

2)对于BS架构程序,可以定制自己专用的浏览器,摆脱浏览器差异所带来的烦恼;

3)可以实现混合模式的客户端程序。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值