当前位置: 棋牌电玩游戏平台 > 独家报道 > 正文

从零开始搭建基于CEFGlue的CB/S的winform项目

时间:2019-06-21 01:40来源:独家报道
基于CEF,用.net包装过的Xilium.CefGlue/3,基于此框架可以很方便在你的winform等C/S项目中搭建一个内建的浏览器 关于CEF: 前言: Chromium Embedded Framework (CEF)是个基于Google Chromium项目的开源

基于CEF,用.net包装过的Xilium.CefGlue/3,基于此框架可以很方便在你的winform等C/S项目中搭建一个内建的浏览器

关于CEF:

前言:

Chromium Embedded Framework (CEF)是个基于Google Chromium项目的开源Web browser控件,支持Windows, Linux, Mac平台。
CEFGlue是此C 写就CEF类库的C# 移植版。基于此类库,我们可以很方便的在我们的winform等C/S项目中嵌入Chrome浏览器。
当我们在项目中引入了CEFGlue类库之后,我们还需要引入CEF类库,因为我们需要通过P/Invoke来调用CEF类库的C 方法。因此如果我们想要在我们的C/S项目中引入浏览器就需要通过引入这两个类库了。

  嵌入式Chromium框架(简称CEF) 是一个由Marshall Greenblatt在2008建立的开源项目,它主要目的是开发一个基于Google Chromium的Webbrowser控件。CEF支持一系列的编程语言和操作系统,并且能很容易地整合到新的或已有的工程中去。它的设计思想政治就是易用且兼顾性能。CEF基本的框架包含C/C 程序接口,通过本地库的接口来实现,而这个库则会隔离宿主程序和 Chromium&Webkit的操作细节。它在浏览器控件和宿主程序之间提供紧密的整合,它支持用户插件,协议,javascript对象以及 javascript扩展,宿主程序可以随意地控件资源下载,导航,下下文内容和打印等,并且可以跟Google Chrome浏览器一起,支持高性能和Html5 技术。

  目的是将一个Web界面镶嵌在winform中,并且全屏显示要求可以XML配置网址,以达到用web来模拟软件的效果。

大概就介绍到这里了。一开始,我们部门的经理叫我去维护一个已有的项目,并尝试优化。该项目就是一个单机版的应用,由于客户的需要(客户的仓库比较偏远,连不上网,因此,只能用C/S来做,但是界面winform的界面又丑,如果用wpf,又耗内存,而且部门没有回WPF的,如果使用GDI 以及重绘控件,又麻烦,当时他们赶时间,因此就有了此项目-基于Chrome内核的CB/S项目)。经理叫我去了解下,项目代码都给我了,一开始就是懵逼啊,尽管以前玩过webbrowes控件,但那是基于IE,而且是已经封装好的,引用下就行,不麻烦,这会可以全新的东西,还是没有听过的,于是,就想着自己来试试吧,找资料,然后自己搭个demo,跑起来,这样的话,理解会更深。说干就干,一顿搜狗和百度,找到了一些资料,如下:
基于.net开发chrome核心浏览器【二】
基于QT的webkit与ExtJs开发CB/S结构的企业应用管理系统 
Xilium.CefGlue与CEF库的版本匹配关系 

项目地址:

  先后接触过三个内核框架:Webkit.Net 、xilium.cefglue 、CefSharp

有了这些基础,不再对CEF两眼抹黑了,当然我没有去研究内核实现。于是我便开始自己搭建了,哎,说起来都是泪啊,满屏的英文资料,看的眼睛疼,不过还是熬过来了,下面介绍下吧,首先给两个官网链接,分别是CEFGlue和CEF的下载路径:


具体怎么用,请参考:
使用CEF(CEFGLUE)作为您的客户端UI(一) 

  

  Webkit.Net: 下载方便,直接调用,但是内核版本过低不能显示 WebGL 对HTML5 和 javascript 支持不够好。

一定要注意CEFGlue和CEF的版本的对应,要不然会有问题。
其次就是CEF版本的下载了:
图片 1

 

  Xilium.CefGlue: 网上资料对比这个内核评价比较高对网页支持也相对完美,但是需要自己整合 cefbuilds 因为网站打不开所以下载不了对应版本cef。

我一开始下载的是debug和release,这两个都是只有dll的,没有什么用,后来我下载了Simple版的,就是windows Client的,下载解压后把release下的文件复制到了winform bin下的release就可以了.
注意,一定要对应CEF与CEFGlue的版本,下载CEF要下载Simple的那个(就我而言,我是这么多的,其余版本的你要是也可以运行,也可以下载)

关于CefSharp:  

  CefSharp:最后选择了CefSharp 因为它已经整合了cef在里面(最新版),网上找cef下载链接怎么搜都是CefSharp 最后干脆用它,内核版本为Chromium 57 比较新。

  这是一个封装了Chromium 框架的 .NET 类库。从而可以方便的使用 CEF 相关的功能。同样是开源项目;

这里放上一些链接,你们可以自己去了解,我了解的很浅薄。

基于.net开发chrome核心浏览器 Xilium.CefGlue的介绍

Xilium.CefGlue与CEF库的版本匹配关系

项目地址:

开发环境:

  

  VS 2015

 

  .net framework 4.5.2

 

  Nuget Package Manager (包管理工具)

1、开始

  首先新建一个 winform 应用程序。然后使用 NuGet 引用

图片 2

 

下载与配置:

2、写代码

图片 3

using CefSharp.WinForms;
using System;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            //必须进行初始化,否则就出来页面啦。
            CefSharp.Cef.Initialize();

            //实例化控件
            ChromiumWebBrowser wb = new ChromiumWebBrowser("http://www.baidu.com");
            //设置停靠方式
            wb.Dock = DockStyle.Fill;

            //加入到当前窗体中
            this.Controls.Add(wb);
        }
    }
}

图片 4

 

  1.首先安装 Nuget,选择- 工具>扩展和更新>联机 搜索Nuget (如图)

 

图片 5

3、运行

哎呀,出错了。

图片 6

CefSharp.Common does not work correctly on 'AnyCPU' platform. You need to specify platform (x86 / x64)

翻译:“CefSharp.Common” 这组件无法再 “AnyCPU” 目标平台上工作,你需要特别指定平台(x86 / x64)

有问题上网搜,解决方案是就是项目的目标平台改为x64 或者x86。

图片 7

图片 8

图片 9

 

  安装好插件后启动,然后重启VS2015

4、F5再次运行

出来效果了。

图片 10

.......................................this is a good man

 

分类: .Net

  2.下载cefsharp包文件: 三个版本,这里我们选择下载 winforms。

  • CefSharp.WinForms
  • CefSharp.Wpf
  • CefSharp.OffScreen 

  进入下载页面需要注意,我们依次要下载4个包文件,在页面左边选择 Download ,下载好第一个后再下载存在 依赖关系 的文件,Dependencies。(如图)

图片 11

下载好CefSharp.Common 后再次下载 这个文件的 依赖包文件。(如下图)

图片 12

  4个包文件下载好后,我们就完成了一半。

编辑:独家报道 本文来源:从零开始搭建基于CEFGlue的CB/S的winform项目

关键词: .NET技术 控件开发 CEF CEFGlue