大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
winfrom调用的浏览器默认内核是ie的,这在当下是很受限制的,前几年的webkit还是挺不错的,可惜停止维护和更新了,当下使用webkit不免也有些不兼容;
幸好还有个项目CEF,后劲十足,且坚挺无比(至少目前很坚挺);https://github.com/cefsharp/CefSharp
下面做了个小demo:
using System;
using System.IO;
using System.Reflection;
using System.Windows.Forms;
//
using CefSharp.WinForms;
using System.Runtime.CompilerServices;
namespace CefSharpTest
{
//anycpu 处理 https://github.com/cefsharp/CefSharp/issues/1714
public partial class Form1 : Form
{
private ChromiumWebBrowser webBrowser = null;
public Form1()
{
//AppDomain.CurrentDomain.AssemblyResolve += Resolver;
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
webBrowser = new ChromiumWebBrowser("http://www.baidu.com");
//webBrowser = new ChromiumWebBrowser(Application.StartupPath + @"\assets\index.html");
webBrowser.Dock = DockStyle.Fill;
this.Controls.Add(webBrowser);
var bindScriptOption = new CefSharp.BindingOptions();
bindScriptOption.CamelCaseJavascriptNames = false; //默认使用驼峰结构,那么对应的html里面的js也要用驼峰形式命名
var asyncTest = new AsyncTest();
webBrowser.RegisterAsyncJsObject("AsyncTest", asyncTest, bindScriptOption);
}
}
}
思考:
1.cef里面集成了很多资源,另外,仅仅是libcef.dll就有近90M大小,更别说release之后的一堆相关资源文件,看着就很不清爽,凌乱;
改进的思路是,额外的文件放到云端,exe启动先校验文件,然后从远端下载,这样避免打包生成的文件太大;
2.引用cef的库之后,编译的项目,要么是32位,要么是64位,想要做到自动兼容,需要手动写代码,这里又个issues可以看看:
anycpu 处理 https://github.com/cefsharp/CefSharp/issues/1714
3.感觉除非项目特殊,不然对winfrom的原有的webBrowser控件完全可以做,只要调用的html没有太高级的特效和语法就行。再有就是api返回数据,winfrom
里面合理的组装和呈现数据即可。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/191873.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...