使用CEF作为浏览器

怎甘沉沦 提交于 2019-12-18 12:55:24

c# 内嵌chrome (CEFSharp)首次

首先标记一个大坑!!!:

不管哪个版本,都需要在解决方案---配置管理器---平台---改为X86。否则一直打开是空白的窗口。坑了我一天都快炸了。

 

步骤一、创建一个winform应用程序。使用NuGet添加CefSharp。然后安装完成后,完全关闭vs并重新打开。(智障)

cefsharp45及以上版本需要VC2013:https://www.microsoft.com/en-us/download/details.aspx?id=40784

 

步骤二、这个教程说可以配置anycpu。配anycpu需要解决方案属性“首选32位”,改csproj和App.config文件。否则你看引用那一堆小叹号。此方法弃用。既然不能很好的支持anyCpu,就别出方法坑人了= =。最后还需要配置管理器改成平台X86才行。辣鸡。(但是nuget包下载后有个readme,第一条就是确保你设置了X86或X64.不会与anycpu一起工作。所以此攻略说的还是有毛病)

步骤二、在解决方案右键----“配置管理器”----平台---“X86”.(没找到选项就新建一个)。即可!!

 

步骤三、

using CefSharp;
using CefSharp.WinForms;

  

public ChromiumWebBrowser chromeBrowser;

public void InitializeChromium()
{
   CefSettings settings = new CefSettings();
   // Initialize cef with the provided settings
   Cef.Initialize(settings);
   // Create a browser component
   chromeBrowser = new ChromiumWebBrowser("http://ourcodeworld.com");
   // Add it to the form and fill it to the form window.
   this.Controls.Add(chromeBrowser);
   chromeBrowser.Dock = DockStyle.Fill;
}

  此处的settings实例化再Cef去初始。反正是默认的,可以Cef.Initialize();即可

public Form1()
{
     InitializeComponent();
     // Start the browser after initialize global component
     InitializeChromium();
}

  

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
     Cef.Shutdown();
}

  

逻辑:

一、在form构造函数里,初始化完全局组件后,建立一个初始化方法。

1、CefSetting实例化一个对象settings

2、用Cef去初始化settings。------------Cef.Initialize(settings);

3、实例化ChromiumWebBrower对象(参数是网址)

4、把对象加载到控件里。设为DockStyle.Fill

二、关闭窗体

Cef.Shutdown();

 

 

 

本文源码项目地址:可fork。(第一个最有用的最简单demo:)

https://gitee.com/HuLuMiaoMiao/FirstCefSharp.git

 

资料:

gitHub官方解答如何使用CefSharp!!!:

https://ourcodeworld.com/articles/read/173/how-to-use-cefsharp-chromium-embedded-framework-csharp-in-a-winforms-application

 

cef gitHub项目地址:

https://github.com/cefsharp/CefSharp

 

CefSharp.MinimalExample :包括WPF、WinForms等最简单实现

git@github.com:hulumiaomiao/CefSharp.MinimalExample.git

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!