Raindrops.UI.WebView: miniblink vip封装与C#集成指南

需积分: 34 4 下载量 73 浏览量 更新于2024-12-21 收藏 53.64MB ZIP 举报
资源摘要信息:"Raindrops.UI.WebView: miniblink vip版本封装" 标题中的“Raindrops.UI.WebView”指向了一个特定的用户界面组件,它基于名为“miniblink”的技术。这个组件用于在C#项目中嵌入Web浏览器引擎。标题还暗示了该组件是针对miniblink的VIP版本进行封装,意味着它可能包含了一些高级特性或优化,专门用于提高性能或功能性。 在描述中,提到了使用Raindrops.UI.WebView组件的便利性,它允许开发者轻松地将miniblink集成到任何C#项目中。这暗示了该组件具有良好的封装性和易用性,开发者无需深入了解底层的P/Invoke(平台调用)代码。此外,封装还提供了对WebSocket接口的支持,为实时网络通信提供了便利。 描述中提到了几个关键的代码模块或命名空间: 1. NativeMethods:包含了所有的P/Invoke代码。P/Invoke是.NET中一种让C#代码调用动态链接库(DLL)中非托管代码的技术。NativeMethods命名空间封装了这些调用,使得开发者不需要直接处理复杂的API调用细节。 2. Miniblink/Event:包含了处理各种事件的代码。事件是编程中常见的模式,用于响应用户操作或程序运行中的各种条件变化。 3. Miniblink/PInvoke:可能包含了与miniblink交互所需的其他平台调用。 描述还提到,如果想要了解如何使用这些封装好的功能,可以参考Raindrops.UI.WebView.TestWinForm。这表明了该项目附带了一个测试窗体应用程序,可以作为学习和测试封装组件功能的工具。 使用Raindrops.UI.WebView前需要准备的资源包括: 1. 从miniblink获取的两个关键DLL文件:mb.dll和node.dll。这些文件是miniblink运行的基础,可能包含了浏览器引擎的核心功能和JavaScript的运行时环境。 2. 正确地引用命名空间,以确保项目能够识别和使用封装好的组件。 标签“C#”表明这是一个使用C#语言编写的项目或组件。C#是一种由微软开发的高级编程语言,广泛用于.NET框架下的应用程序开发。在企业级应用开发中,C#由于其强大的类型系统、丰富的库支持和跨平台能力而受到青睐。 最后,压缩包子文件的名称列表中只有一个条目:“Raindrops.UI.WebView-main”。这表明提供给我们的文件包含了Raindrops.UI.WebView项目的主版本,可能是源代码、文档和其他资源文件的集合。main通常表示主分支或主版本,是项目的核心部分。 总结以上信息,知识点包括: - Raindrops.UI.WebView是一个C#封装组件,用于在项目中嵌入miniblink浏览器引擎。 - miniblink是一个轻量级的Chromium嵌入式浏览器解决方案,常用于需要Web功能但资源受限的应用程序。 - 组件提供了事件处理、WebSocket接口和易用的API,方便开发者集成。 - P/Invoke代码被封装在NativeMethods命名空间内,隐藏了底层的复杂性,提高了开发效率。 - 项目还提供了测试窗体应用程序Raindrops.UI.WebView.TestWinForm,用于演示和学习封装功能的使用。 - 开发者需要准备mb.dll和node.dll这两个DLL文件,以及正确引用组件所需的命名空间。 - “Raindrops.UI.WebView-main”表示包含项目主要文件的压缩包文件名称。
2021-06-14 上传
前言 本程序基于精易Web浏览器支持库(miniblink内核) 请在打开本代码前保证安装了“精易Web浏览器支持库”,否则会导致无法打开等极度严重的Bug 【一些问题】摘自帖子精易Web浏览器支持库(miniblink内核) Q. 为什么提示找不到dll命令? A. 请将"node.dll" 这个文件放到易语言 根目录,易语言/lib 目录下,调试时会从这两个文件夹里寻找"node.dll"文件,"这两个目录必须要要node.dll"如果是编译的版本,请将"node.dll" 存放到你编译好的程序的目录下 这里是程序中使用的Dll或Exe的查毒:截图.exe exdui.dll 程序特点(下面是部分介绍和截图): 1.首先程序使用了多标签(多Tabs)构架,对于很多人来说,这个构架并不是很新颖。但是,本浏览器(下称“MiniBlink浏览器”)使用的是多进程操纵,即一个浏览器便是一个进程,这样有什么好处呢? 1.由于Miniblink的特性,在统一进程下,如果创建多个浏览框窗口,如果修改单个的Cookie目录或者缓存目录,则本进程下的全部浏览框的Cookie目录或者缓存目录都会被修改,那么,如果采用多进程构架的话,就不存在这个问题,所以“MiniBlink浏览器”经过您简单的修改,每个浏览框都可以独立Cookie缓存,何乐而不为呢? 2.众所周知,Miniblink浏览框采用单线程渲染界面,那么假如你在窗口中创建过多的浏览框且都处于访问状态的话,实际访问速度就会大大的下降,而“MiniBlink浏览器”使用多进程,平均访问速度更加快。 原理介绍:多进程之间怎么进行很好的控制呢?其实就是一件简单的进程通信在主进程中,程序保留了对于子进程的信息记录,标识保留在“高级选择夹_Ex”中的“子夹图标”这一函数中!!(这里要提出一个警告,“高级选择夹_Ex”中的“子夹图标”保留的为当前浏览框的标识,而不是真正是图标句柄,因为开始没有考虑图标的问题,后来也懒得改了,“SetImg”才是真正设置图标的命令!!) 2.主程序全局使用“Ex_DirectUI” 包含的Ex组件 介绍 构造 小按钮_Ex 创建一个图片小按钮 其实是一个简单的图像绘制的按钮 高级选择夹_Ex 本组件是一个模拟高级选择夹的组件 State拼凑组合而成 书签夹_Ex 创建一个书签 State拼凑组合而成 3.0模块中包含的部分组件 图片框,编辑框什么的 无 - 在代码中,其实“Ex_DirectUI”部分的代码是非常简洁易懂的,您可以直接看代码,上方的表格仅供参考 3.书签夹 书签夹相当于是很多图像的集合,而文件夹和书签夹的完美结合又和收藏夹有关系了,“MiniBlink浏览器”中很多代码是互相使用,互相联系的(其实是一个Ex_DirectUI菜单处理) 4.收藏夹 收藏夹对应的目录是“Database”,程序读取收藏夹中URL的方法是递归,注:“集_书签_保留菜单”是处理“书签夹”中的文件夹菜单。菜单一览: 收藏夹管理部分(这部分我觉得我还是做得很上心的): 5.高级选择夹 这么重要的东西我差点忘了说了:这里的图标和按钮位置是经过我严(粗)格(心)的计算得出来的: 同时为了达到和主流浏览器一样的选择夹效果,我还专(才)门(怪)计算了选择夹应该有的宽度和位置。 6.百度搜索框 好像比较鸡肋: 7.下载 现在还是在使用“_ download tool.exe” 8.更多功能更多功能可以自行探索哦!!!毕竟这里面还有不少功能呢!“MiniBlink浏览器”已经完善了大部分人定制浏览器的大部分功能 PS 使用前请将“浏览器 - 附加.e”编译为“NewProcess.exe”(子浏览框),将“文件_下载.e”编译为“_ download tool.exe”!!