C#窗体内嵌Chromium内核浏览器实战 (2)

简介: 本文目录1. 确认CefSharp版本2. 新建winform工程3. 修改生成配置4. 编写窗体代码5. 启动测试6. 部署至xp7. 测试Vue是否可用

上一篇文章中已经把所有准备工作做完了,包括:


xp系统,安装了.net framework4.0 和VC++2013运行库,用于测试运行效果

VS3013,安装了NuGet ,用于开发程序

万事可以说基本具备,现在上东风


1. 确认CefSharp版本

首先确认CefSharp的版本,在GitHub上有说明,CefSharp的GitHub。

image.png

因为XP上安装了. net version为4.0,对应的CefSharp最高版本为49。


所以我们在NuGet查看49对应的内容即可,NuGet上CefSharp地址:CefSharp的NuGet。


点击49版本后,可以看到PM指令为:


Install-Package CefSharp.WinForms -Version 49.0.1

image.png

2. 新建winform工程

使用VS2013新建一个winform工程:

image.png

然后点击工具-NuGet包管理器-程序包管理控制台,输入指令Install-Package CefSharp.WinForms -Version 49.0.1后回车。


该指令负责将CefSharp49.0.1添加到我们的项目中,待提示已成功添加信息后,可进行下一步操作。


3. 修改生成配置

点击生成-配置管理器,因为咱们的目标XP系统为32位x86平台,所以讲目标平台调整为x86:

image.png

4. 编写窗体代码

将自动生成的Form1类代码修改如下,实际上就是建立一个chrome浏览器控件后添加到当前窗体。

using CefSharp.WinForms;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace CefSharpDemo
{
    public partial class Form1 : Form
    {
        public ChromiumWebBrowser browser;
        public Form1()
        {
            InitializeComponent();
            InitBrowser();
        }
        public void InitBrowser()
        {
            browser = new ChromiumWebBrowser("http://www.baidu.com");
            this.Controls.Add(browser);
            browser.Dock = DockStyle.Fill;
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            WindowState = FormWindowState.Maximized;
        }
    }
}

5. 启动测试

启动后,外层窗体内部包含网页,没问题:

image.png

6. 部署至xp

将项目生成的x86目录下的debug目录拷贝到xp系统运行,依然正常:(看看XP系统那骚气的蓝色任务栏)

image.png

7. 测试Vue是否可用

既然CefSharp是Chromium内核,那支持Vue自然不在话下。

简单的写一个Vue页面:

<html>
<head>
<title>hello vue</title>
</head>
<body>
<div id="app">
  {{str}}
</div>
<script src="vue.min.js"></script>
<script>
var app=new Vue({
  el:'#app',
  data:{
    str:'hello my vue for win form'
  }
});
</script>
</body>
</html>

将页面部署至tomcat服务器,地址如下,其中192.168.0.14是服务器局域网IP地址。


http://192.168.0.14:8080/EasyDemo/index.html

1

将.net程序指定地址代码修改为:


browser = new ChromiumWebBrowser("http://192.168.0.14:8080/EasyDemo/index.html");

1

重新编译后部署至XP系统,效果如下:

image.png

不得不说,Chromium内核确实牛X好用先进。

厉害了。

相关文章
|
9月前
|
存储 监控 安全
360 企业安全浏览器基于阿里云数据库 SelectDB 版内核 Apache Doris 的数据架构升级实践
为了提供更好的日志数据服务,360 企业安全浏览器设计了统一运维管理平台,并引入 Apache Doris 替代了 Elasticsearch,实现日志检索与报表分析架构的统一,同时依赖 Doris 优异性能,聚合分析效率呈数量级提升、存储成本下降 60%....为日志数据的可视化和价值发挥提供了坚实的基础。
360 企业安全浏览器基于阿里云数据库 SelectDB 版内核 Apache Doris 的数据架构升级实践
|
9月前
|
Web App开发 小程序 前端开发
【产品上新】小程序新内核来了!提升安卓浏览器性能,支持WebRTC
【产品上新】小程序新内核来了!提升安卓浏览器性能,支持WebRTC
161 10
|
9月前
|
Java 数据库 C#
C#winforms实现windows窗体人脸识别
C#winforms实现windows窗体人脸识别
|
4月前
|
API C# Windows
【C#】在winform中如何实现嵌入第三方软件窗体
【C#】在winform中如何实现嵌入第三方软件窗体
211 0
|
8月前
|
JavaScript 前端开发
WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件),获取网页加载后的标题
在使用 WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件)时,要获取网页加载后的标题,可以监听 WebView2 的 NavigationCompleted 事件。这个事件被触发时,表示导航已完成,此时执行JavaScript代码可以安全地获取网页的标题。
WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件),获取网页加载后的标题
|
7月前
|
Web App开发 编解码
软件开发常见流程之兼容性和手机屏页面设计,PC端和移动端常见浏览器,国内的UC都是根据Webkit修改过来的内核,开发重点关注尺寸,常见移动端尺寸汇总,移动端,理想视口根据你设别的样式进行修改
软件开发常见流程之兼容性和手机屏页面设计,PC端和移动端常见浏览器,国内的UC都是根据Webkit修改过来的内核,开发重点关注尺寸,常见移动端尺寸汇总,移动端,理想视口根据你设别的样式进行修改
|
7月前
|
开发框架 数据可视化 C#
|
9月前
|
C#
C#如何实现窗体最小化到托盘
C#如何实现窗体最小化到托盘
172 0
|
9月前
|
JavaScript Linux C#
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
174 0
|
3月前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
60 3