在WinForm中嵌入WebBrowser开发

EO.WebBrowser,Chrome浏览器内核,可以在WinForm中嵌入Chrome浏览器,详情可以浏览官方网站。

备注:EO.WebBrowser是付费的解决方案,而且只接受美元付款。

为什么用EO.WebBrowser?

VS内置的WebBrowser默认是IE7模式,很多H5功能无法正常使用,兼容性太差了。
EO.WebBrowser -—Embed Chrome Browser Engine in your .NET application​http://www.essentialobjects.com

官方网站​www.essentialobjects.com/Products/WebBrowser/Default.aspx

【1】安装了EO.WebBrowser之后,会在VS的工具栏出现工具菜单

【2】【3】将WebControl拖动到WinFrom上,会在窗口上自动增加一个浏览器控件。

要让想让他正常显示网页,需要加几行代码

首先必须加载AddLicense,然后指定网址,然后启动程序即可。

实际上,可以不用显示网页窗口就可以操作网页,例如可以不用显示网页窗口,就可以把网页截图。

在Load里这样写:

Dim threadRunner As New ThreadRunner()
Dim webView As WebView = threadRunner.CreateWebView()

threadRunner.Send(Function()
webView.LoadUrlAndWait("http://www.baidu.com")
webView.Capture().Save(“C:\00.JPG”)
End Function)

不需要拖放控件到WinForm,只需要引用EO.base即可。在EO.Webbrowser安装目录下可以找到对应的dll。

在网页上执行javascript

webView1.EvalScript("alert('hi');")

引号内即网页上要执行的javascript脚本,可以通过拼合变量传参,理论上可以执行任何的javascript语句。

如果要获得返回值,直接Dim str as string = webView1.EvalScript("XXX;")即可

在javascript程序中调用.NET程序

这个要复杂一些,举个例子,首先在.net程序中注册demoAbout函数,
webView1.RegisterJSExtensionFunction("demoAbout", New JSExtInvokeHandler(WebView_JSDemoAbout))

在javascript脚本中,我们这么调用demoAbout,要求返回版本号和url,

demoAbout(window.navigator.appVersion, document.URL);

在.net我们需要定义如何获取返回的参数
Private Sub WebView_JSDemoAbout(sender As Object, e As JSExtInvokeArgs)

‘得到第一个返回的参数
Dim browserEngine As String = TryCast(e.Arguments(0), String)

‘得到第二个返回的参数
Dim url As String = TryCast(e.Arguments(1), String)
MessageBox.Show("Browser Engine: " & browserEngine & ", Url:" & url)
End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值