关于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。