.NET (WPF and Windows Forms) bindings for the Chromium Embedded Frameworkhtml

nuget: Install-Package CefSharp.Wpfgithub

比较流行的第三方内嵌浏览器组件,虽然仍是一如既往的坑,可是最起码不少人踩,因此就用它了。web

更多相关项目,请访问代码沉淀目录浏览器

重要提示:请注意项目的版本,以官方最新版本为准。微信

在好久好久以前,就有不少人提过在一个窗体程序内嵌入浏览器,因而我最后也用到了,因而就记录一下踩得坑,留做备忘。ide

1. cef子进程的开始与关闭,若是你的程序出现了子进程的这种问题,请调用:网站

CefSharp.Cef.Shutdown();

2. 右键菜单问题,不少配置cefsharp都考虑到了,虽然实现起来各类麻烦。ui

classMyCefMenuHandler: CefSharp.IContextMenuHandler

{//其它方法的实现不是重点。//其它参数也不是重点。

public voidOnBeforeContextMenu(IMenuModel model)

{

model.Clear();

}

}

3. 网页语言问题,不少网站会根据请求头的区域标识,返回对应的语言的网页,好比微信,因此咱们要标识我首选就是中文,先给我返回我认识的国语网页。spa

//其余方法不是重点(不过实现一次接口你都想死,太多方法了!)//其余参数也不是重点//必定要从新覆盖访问头,直接赋值没卵用!

publicCefReturnValue OnBeforeResourceLoad(IRequest request)

{var headers =request.Headers;

headers.Set("accept-language", "zh-CN,zh;q=0.8,en;q=0.6");

request.Headers=headers;returnCefSharp.CefReturnValue.Continue;

}

4. 你们可能都遇到的问题,WPF专用的CefSharp控件,不支持设计时,这你就无法子了,我是以为烦就后台生成浏览器控件的实例,这一帮官方的开发人员也真是够懒的,到如今了还不添加设计时支持,真是吃干饭的。

5. 我看到exe同级目录下那么多dll,就蛋疼,因而就作了资源转移,其余dll用的“Costura.Fody”,至于Cef方面的,就只能老老实实转一大圈了。

658244fa559c489f95dbd4cf.html

658244fa559c489f95dbd4cf.html

1 //首先,让Costura.Fody组件不合并CefSharp相关的资源文件,由于非托管啥的资源还有子线程,你不可能真的都打包。2 //FodyWeavers.xml

3

4

5

6 //接下来,咱们不是把dll挪到别的目录么,程序启动搜索dll,就要多一些地方,好比我放在子目录里。7 //App.Config

8

9

10

11

12

13

14

15 //接下来,把cef相关的20个文件,locales目录的53个文件全扔到x86\cef目录里,并修改Cef初始化配置。

16 internal static voidBuild()17 {18 stringlib, browser, locales, res;19 //Assigning file paths to varialbles

20 lib = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"x86\cef\libcef.dll");21 browser = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"x86\cef\CefSharp.BrowserSubprocess.exe");22 locales = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"x86\cef\locales\");23 res = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"x86\cef\");24 var settings = newCefSettings();25 settings.BrowserSubprocessPath =browser;26 settings.LocalesDirPath =locales;27 settings.ResourcesDirPath =res;28 Cef.Initialize(settings, true, null);29 }

View Code

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐