关于CoreWebView2

CoreWebView2是真正的底层浏览器,WebViewer是一个UI封装。

所以我们的代码两个对象都会用到。

WebViewer就是一个常规控件,可以进行一些普通的设置,例如可见、尺寸、位置、锚定等等。

CoreWebView2是底层的浏览器(基于
Chromium),浏览器相关操作多在CoreWebView2层执行,例如导航、执行 JS、处理网络请求、控制缩放等操作。

但这种区分不是绝对的,为了方便,
WebViewer也把CoreWebView2的几个最常用属性和方法封装进来了,例如缩放和导航。

CoreWebView2依附于WebViewer,一开始是不存在的。

WebViewer创建之后,需要初始化才能得到CoreWebView2,我们之前初始化浏览器的代码:

'''Async
Dim wv As WebViewer = e.Form.Controls("WebViewer1").WebViewer
Await
wv.EnsureCoreWebView2Async(Nothing) '初始化WebViewer

其实就是创建一个底层浏览器,也就是
CoreWebView2。

如果不初始化,直接设置网址:

Dim wv As WebViewer = e.Form.Controls("WebViewer1").WebViewer
wv.CoreWebView2.Navigate("https://www.example.com/")

或者去掉Await关键词,不等浏览器初始化完成就设置网址:

Dim wv As WebViewer = e.Form.Controls("WebViewer1").WebViewer
wv.EnsureCoreWebView2Async(
Nothing)
wv.CoreWebView2.Navigate(
"https://www.example.com/")

都会提示NullReferenceException错误,因为这个时候
CoreWebView2还没有初始化完成,其值为Nothing。


本页地址:http://www.foxtable.com/webhelp/topics/6204.htm