C#使用chrome浏览器(CefSharp)
2022/2/9 9:12:42
本文主要是介绍C#使用chrome浏览器(CefSharp),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
0. 前言
由于项目需要,众所周知,PC端软件的界面UI令人堪忧。之前使用过Qt,C#都不尽人意。而且对应的界面库也不多,很多还是收费的。
有没有一种可能,就是基于Web的开源生态,开发一些桌面工作呢,目前有Electron,这个用的人比较多。这个有个缺点就是,如果涉及到与硬件或操作系统之类进行交互的时候,就没有C#或者QT那样方便。特别是调用动态库之类的。
C#通过CefSharp,引入一个Chrome内核,使其能使用Web来画界面,然后用C#来实现对应的功能。
1. 新建C#(.Net)项目
目标框架选择.net framework 4.6
2. 通过Nuget应用CefSharp
目标平台要进行选择,不能是any cpu
安装以下必要的依赖包
拖动一个Web控件到界面上
3. 编写代码,加载Html文件
1 using CefSharp; 2 using CefSharp.WinForms; 3 using System; 4 using System.Collections.Generic; 5 using System.ComponentModel; 6 using System.Data; 7 using System.Drawing; 8 using System.Linq; 9 using System.Text; 10 using System.Windows.Forms; 11 12 namespace CefTools 13 { 14 public partial class Form : System.Windows.Forms.Form 15 { 16 public Form() 17 { 18 InitializeComponent(); 19 20 //访问连接不安全网页时不显示的问题 21 var setting = new CefSettings(); 22 setting.CefCommandLineArgs.Add("--ignore-urlfetcher-cert-requests", "1"); 23 setting.CefCommandLineArgs.Add("--ignore-certificate-errors", "1"); 24 //setting.LogSeverity = LogSeverity.Disable; 25 Cef.Initialize(setting); 26 27 BrowserSettings bsetting = new BrowserSettings(); 28 web.BrowserSettings = bsetting; 29 30 this.web.AllowDrop = false; 31 this.web.Dock = DockStyle.Fill; 32 33 this.web.LoadUrl("file:///./test/test.html"); 34 35 //JS调用C# 36 web.JavascriptObjectRepository.Settings.LegacyBindingEnabled = true; //启用运行JS调用C#代码 37 CefSharpSettings.WcfEnabled = true; 38 web.JavascriptObjectRepository.Register("bound", new Bound(), isAsync: false, options: BindingOptions.DefaultBinder); 39 } 40 41 private void btn_Click(object sender, EventArgs e) 42 { 43 //C#调用JS 44 web.ExecuteScriptAsync("alert('C#调用JS')"); 45 web.ShowDevTools(); 46 } 47 } 48 class Bound 49 { 50 public string val { get; set; } 51 public void print() 52 { 53 Console.WriteLine("Bound Val: " + val); 54 val = "update"; 55 } 56 } 57 }
4. C#调用JS
5. JS调用C#
本文地址:https://www.cnblogs.com/wunaozai/p/15872741.html
个人主页:https://www.wunaozai.com/
这篇关于C#使用chrome浏览器(CefSharp)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#