重拾CEF【关于cefsharp的引导资料--翻译】来源其他网站

来源地址点击打开链接;

更多请参考 https://github.com/cefsharp/CefSharp/wiki/Quick-Start

开始

How to use CefSharp (chromium embedded framework c#) in a Winforms application

如何在一个window窗口应用中使用CefSharp(chromium嵌入式框架 Csharp版)

CefSharp is the the easiest way to embed a full-featured standards-complaint web browser into your C# or VB.NET app. CefSharp has browser controls for WinForms and WPF apps, and a headless (offscreen) version for automation projects too. CefSharp is based on Chromium Embedded Framework, the open source version of Google Chrome. You can get more information about the CefSharp project in the official homepage here.


使用cefsharp是最容易的方法,能把一个支持全特性的标准web浏览器嵌入到你的csharp或者vb net客户端应用中。cefsharp支持winforms和wpf应用的浏览器控制,同时还支持动态工程的隐藏顶部菜单的全屏形式。cefsharp是基于chromium嵌入式框架的,而这个框架是来自谷歌chrome的开源版本。你可以通过CefSharp的官网首页获取更多信息。

你可以使用cefsharp 作为你的浏览器插件,而不需要依赖于你的用户所在的Windows上IE浏览器的版本,也不需要预先定义你的应用用户接口。
当然,你能在你的winform应用中通过自己的css(或者bootstrap等)使用包括但不限于对于按钮及输入框等html元素控制

既然你又这么好的一个机会去用html、javascript、css制作一个漂亮的动态window应用,那就我们开始吧

在这篇文章中,我们将使用最新的cefsharp版本,如果你想获取最新版本,我们会按照步骤给你提示

准备

vs2010以上,携带nuget的版本

1 使用基本的winform应用并通过nuget包管理添加cefsharp

按照原有的流程,先创建基于指定版本的net的winform应用程序工程;

接着确保你的机器上安装了cefsharp所需的运行环境
cefsharp 45++  对应vc2013
cefsharp 44--- 对应vc2012

否则你会防线有未处理的异常System.IO.FileNotFoundException

另外,会提示无法加载CefSharp.Core.dll文件及其依赖文件


一般在安装vs2013及其以上的版本都不会出现以上情况

现在,创建好了工程之后,需要添加cefsharp组件。怎么添加呢,在解决方案右键点击的菜单选择nuget包管理(不同版本的vs如果操作可能存在区别)

在浏览标签输入cefsharp进行搜索
可以看到有一个
CefSharp.WinForms
的结果,选中它,右边的详情内容会显示详细信息

请注意看依赖的内容部分

CefSharp.common

这个不用担心,在你安装CefSharp.WinForms,vs会按照递归依赖分析所有需要的

在详情页面点击安装,提示窗口会显示所有依赖,在点击确定后会全部安装

安装好后,在form代码中导入Cefsharp

一般工程在安装之后会自动关联组件,否则会提示命名空间未找到

2因为cefsharp只支持X64和X86,请修改目标平台cpu,如果是anycpu提示修改的话

--需要先在工程属性中修改net最低为4.5.2
--cefsharp 51++是支持anycpu通用的,但是需要修改工程属性的build参数值,选中32bit优先
然后在
project.csproj文件的第一个PropertyGroup添加参数<CefSharpAnyCpuSupport>true</CefSharpAnyCpuSupport>

最后,修改 App.config 文件在configuration 标签内新增如下标签内容

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <probing privatePath="x86"/>
    </assemblyBinding>
</runtime>


接下来,可以去 https://github.com/cefsharp/CefSharp/issues/1714  查看cefsharp anycpu支持的问题


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

针对 version49及其之前的老版本是无法使用anycpu配置的

所以需要在工程运行环境中需要新增x86或者x64运行平台



接下来就是cefsharp的使用

现在我们的应用已经有cefsharp的支持,接着我们需要用代码去调用它,
在你的代码里面可以使用 using import CefSharp

然后 增加如下方法并在主类中新增一个公共的浏览器类型(方便在其他方法中使用)

在执行InitializeComponent初始化方法后可以执行这个类的逻辑

千万别忘了在你关闭窗口应用程序时停用你的cef组件

示例代码如下


接着点击运行工具栏或者使用F5快捷键启动你的应用,你将看到一个网址是如何加载在wind窗口应用程序上 的

大吉大利
通过最基本的语法,你已经可以在应用中实现cefsharp了,我们建议继续浏览cef框架的文档,并尝试如何开发出更酷的东西



继续,我们将实现基于纯粹的html,javascript,css资源达到UI实现,仅使用本地文件和操作系统。

我们需要引入html资源,放在vs project工程中
你可以直接通过资源管理器新疆他们添加进去,或者在vs中操作
但是通过vs是比较容易,因为目录创建会自动添加到工程资源

在某系情况下,我们可以把常用的js插件集成到对应的目录


添加完毕后,选择所有资源文件,右键拷贝到输出目录为 总是拷贝

接着,我们需要设置cefsharp默认指定到index。html文件
而不是一个网站地址
工程资源关联上了之后
我们可以使用以下代码获取资源

建议使用相对路径
但是运行应用是会遇到javascrip未知对象和路径使用不对的提示

我们应该指定JavaScript,从而能通过JavaScript调用动态方法

我们要创建一个需要两个参数的新类,在初始化的时

这个类有两个方法,一个是去启动chromium开发者工具,另一个去启动window的命令窗口


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值