前端时间有个小项目为了消除客户访问时浏览器差异造成的界面差异,决定将B/S软件包装成C/S软件,可能大家之前也遇到过类似的问题,有时候不一定是为了消除差异,总之可能性很多,但是最终的目标一致。 我的做法是封装Chromium内核的.net封装版本,选用c#的原因是, 鄙人不懂c/c++,如果懂c/c++就更好办了,直接使用Chromium内核。说下我的开发步骤吧。 第一步、我们得安装c#开发环境,一般人都用vs .... 第二步、我们需要安装vs的NuGet插件; 第三步、使用NuGet的管理程序包界面里的搜索功能,搜索cef关键词,看到的CefSharp.WinForms包就是我们需要用到的,安装它即可; 第四步、新建解决方案,创建winForm项目; 第五步、给项目添加引用,需要添加3个dll,分别是CefSharp、CefSharp.Core和CefSharp.WinForms; 第六步、将NuGet下载的CefSharp包中的文件拷到自己的项目debug目录中,需要拷的目录有: packages\CefSharp.WinForms.47.0.0\CefSharp\x86\目录下所有文件、 packages\CefSharp.Common.47.0.0\CefSharp\x86\目录下所有文件、 packages\cef.redist.x86.3.2526.1362\CEF\x86\目录下所有文件 packages\cef.redist.x86.3.2526.1362\CEF\目录下的locales文件夹和这个目录里面的所有pak和dat文件。 第七步、用vs在项目中新建winform窗体,双击窗体视图进入Form1_Load方法,可以开始编写代码了...
//设置跨线程访问界面组件 Control.CheckForIllegalCrossThreadCalls = false; //要访问的地址,因为是项目集成用,所以这个项目首页地址是写进去的,并不是用户输入的。 string webUrl = “http:www.baidu.com”; var settings = new CefSettings(); settings.Locale = "zh-CN"; //设置视频播放插件falsh settings.CefCommandLineArgs.Add("ppapi-flash-path", System.AppDomain.CurrentDomain.BaseDirectory + "plugins\pepflashplayer.dll"); //指定flash的版本,不使用系统安装的flash版本 settings.CefCommandLineArgs.Add("ppapi-flash-version", "23.0.0.162"); //设置开启缓存 settings.CachePath = "cache"; //开启GPU加速 settings.CefCommandLineArgs.Add("disable-gpu", "1"); settings.CefCommandLineArgs.Add("SingleProcess ", "false"); settings.MultiThreadedMessageLoop = true;
CefSharp.Cef.Initialize(settings);
var browser = new ChromiumWebBrowser(webUrl)
{
Dock = DockStyle.Fill
};
this.Controls.Add(browser);
webBrowser = browser;</code></pre>
代码就这么一点,然后运行这个项目,就能看到效果了.... 很多人都去下载cefSharp的源码....初学者可以下载源码看,但是不建议直接使用,因为很多人编译都编译不过去,直接下载官方提供的dll就可以轻松搞定。 第一次在osc上写东西,写的不好,大家见谅....
我们也做的类似的东西,我们用的C#自带的IE内核,我们有几个插件必须IE内核,但是自带的IE内核版本太低了,不知道有木有办法######用IE的话 一般都是调用当前机器的IE内核..... 这跟当前机器的IE版本有关系, 你可以要求客户安装你的客户端的时候 win是版本, 比如说 你可以要求是win7, win7上最低的版本 是IE8,或者要求win8以上
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。