文档库 最新最全的文档下载
当前位置:文档库 › ChromiumWebBrowser

ChromiumWebBrowser

ChromiumWebBrowser
ChromiumWebBrowser

基于Chromium构建Chrome WebBrowser for .net 控件

我分为了两个项目,一是libfuncs,为了使DLL名称一致,我重命名了CefSharp项目,它负责提供操作浏览器的方法和触发事件;二是cwber,它是自定义的WinForm控件,用于在Form上的布局,必须引用libfuncs.dll。

源码地址:https://https://www.wendangku.net/doc/993165442.html,/projects/chromewebbrowse

重点是libfuncs中的libfuncs.h、ChromeApp.h、ChromeApp.cpp、ClientAdapter.h、ClientAdapter.cpp五个文件,实现方法都在里面,其他的文件基本都是接口文件。我自己只根据项目实际需求来做的功能,接口没有全部实现。

一、https://www.wendangku.net/doc/993165442.html, 下载与使用

https://www.wendangku.net/doc/993165442.html,项目包含三个包,分别是:

浏览器核心:libfuncs,主要处理浏览器布局、解释、事件、命令等,源代码使用vs2008编译;

dotNet桌面控件:cwber,是浏览器在界面载体控件,面向开发者,提供与浏览器交互的各种函数和事件,源代码使用vs2008编译;

例子:example,描述了如果使用cwber控件,源代码使用vs2010编译,也可以自己重做例子,我只是为了验证在vs2010下好不好用;

例子中包含了cwber.dll和libfuncs.dll。

下载地址:https://https://www.wendangku.net/doc/993165442.html,/projects/chromewebbrowse/files/

最新版本:

cwber2013.08.08:包含了cwber和example;

cwber2013.08.08.2:包含libfuncs;

二、https://www.wendangku.net/doc/993165442.html, Release v1.01

源码地址:https://https://www.wendangku.net/doc/993165442.html,/projects/chromewebbrowse/files/

新发的版本中包含了以下函数:

1. 设置语言

SetLanguage

2. 为浏览器设置cookie保存路径

SetCookiePath

3. 全选

SelectAll

4. 复制

Copy

5. 粘贴

Paste

6. 重载

Reload

7. 打印

Print

8. 查看源码

ViewSource

9. 加载Html文本

LoadHtml

10. 注入JS脚本

ExecuteScript

11. 向前

GoForward

12. 回退

GoBack

13. 是否能前进

canGoForward

14. 是否能后退

canGoBack

15. 打开URL地址

OpenUrl

16. 获取元素的值

GetElementValueById

17. 元素赋予新值

SetElementValueById

18. 附加元素的侦听事件。当该元素触发附加事件时,则执行TCallBackElementEventListener 委托方法

AppendElementEventListener

包含的事件:

1. 控件初始化事件

ComponentInitializedEventHandler

2. 页面加载完成事件

DocumentCompletedEventHandler

3. 加载开始事件

PageLoadStartEventHandler

4. 加载完成事件

PageLoadFinishEventHandler

三、https://www.wendangku.net/doc/993165442.html, v1.02 增加缓存数据库支持

源码地址:https://https://www.wendangku.net/doc/993165442.html,/projects/chromewebbrowse

在1.02版本增加缓存数据库的支持,缓存数据库是使用SQLite。

cwber:增加CacheDB类操作SQLite.

libfunc:增加JsExtendHandler对JS方法的响应。

四、https://www.wendangku.net/doc/993165442.html, 1.0.3发布

源码地址:https://https://www.wendangku.net/doc/993165442.html,/projects/chromewebbrowse

感谢众多小伙伴们的关注和支持,我现在建立一个讨论QQ群:343517844,希望大家多提意见。

在1.0.3版本中针对网友提出的问题进行修改,主要修改内容:

1、增加了JavaScript方法:CallCSharpMethod 在JS中调C#方法。

原形定义:string CallCSharpMethod(string method,string values);

method是C#方法名,values是参数值,如果有多个,则以逗句分隔,如:CallCSharpMethod("DoThing","untitle,10");

2、增加“CSharpBrowserSettings”类,类成员有:

UserAgent用户代理

CachePath缓存数据存放路径

Locale设置语言,如: zh-CN

LocalesDirPath语言包路径,如"D:\ChromeTest\Bin\Debug\locales",一定要是本地存在的路径。

使用例子请参考ChromeTest程序。

3、增加事件“NewWindowEventHandler”

新窗口打开事件,如果创建该事件,则可以编写打开新页面的容器,比如流行的分页签浏览器,如果没有创建就采用默认的弹出一个窗口。

4.、增加了Title属性,显示当前页面的标题。

5、修改了OpenUrl方法,以前使用这个方法打开的时候会出问题无法打开的Bug,是因为浏览器控件没有初始化好。

6、增强了例子ChromeTest程序,添加了如下功能:

1). 启动完成后打开首页功能;

2). 增加TabControl,如果新窗口事件,则新创建一个页签并打开新页面;

3).增加“Create page”按钮,创建一个新页签,新页签中打开一个新地址;

4). CSharpBrowserSettings类中参数的使用;

6). 修改了cachedbTest.html页面,如果设置了CSharpBrowserSettings中的UserAgent 参数,JavaScript中调用https://www.wendangku.net/doc/993165442.html,erAgent则显示自定义的参数。

五、https://www.wendangku.net/doc/993165442.html, 1.1.0.0 发布

大家好,在此版本前推出过1.0.4.0,主要是将内核改为了CefGlue3,Cef版本为3.1650.1562,其他方法没有什么变化。在以往的版本中,要与网页的交互类基本没有,交互函数也限于ExecuteScript和EvaluateScript方法,配合javascript方法CallCSharpMethod,虽然能实现与网页的交互,但对于javascript不太了解的伙伴是太不方便了,在这个新版本中推出了CwbDocument和CwbElement两个类,CwbDocument包含了所有页面元素和Cookie内容,CwbElement将映射到网页节点,可以直接读和写,那下面就是这两个类的方法,不足之处您可以修改,也可以发私信或QQ消息给我。欢迎加入讨论群=>343517844。更多信息请查看源码包中的用户指南。

源代码下载地址:https://https://www.wendangku.net/doc/993165442.html,/projects/chromewebbrowse

CwbDocument

属性Cookies 当前页面所有Cookie

Cookie 当前页面所有Cookie组合成字符串

Root 文档根节点,包含了文档中所有子节点

方法Load 默认在控件的DocumentCompleted事件中自动调用,也可以手动调用进行重载。

GetElementsByTagName 根据标签获取所有对应的元素

GetElementById 根据ID获取元素

CwbElement

属性Id 元素编号

TagName 元素标签名称

IndexPath 元素路径

ChildElements 所有子元素

IsElement 是否元素

IsEditable 是否可编辑

HasChildren 有无子节点

HasAttributes 有无属性

Attributes 节点所有属性集合

InnerText 内文本

InnerHtml 内html文本

Value 元素值

方法HasAttribute 判断是否有某个属性

GetAttribute 获取属性值

SetAttribute 设置属性值

Click 执行元素点击事件

AttachEventHandler 增加元素事件侦听器

相关文档