打开网页
接下来的代码均假定你已在窗口插入了一个WebViewer控件,并在窗口的AfterLoad事件中加上了初始化代码:
'''Async
Dim wv As WebViewer = e.Form.Controls("WebViewer1").WebViewer
Await wv.EnsureCoreWebView2Async(Nothing) '初始化WebViewer,注意前面要加上Await
用Navigate打开网页
大多数时候,我们用Navigate方法打开网页:
Dim wv As WebViewer = e.Form.Controls("WebViewer1").WebViewer
wv.CoreWebView2.Navigate("https://www.example.com/")
打开本地文件
可以用Navigate打开本地文件,例如
:
Dim
wv
As
WebViewer = e.Form.Controls("WebViewer1").WebViewer
wv.CoreWebView2.Navigate("c:\abc\test.htm")
多行字符串
对于有一些简单的测试网页或html内容,我们可以直接写在代码中,而这些内容往往多行的。
如果要在代码中输入多行字符串,请使用下面的语法输入:
Dim
html
As
String
=<![CDATA[
第一行字符串
第二行字符串
第三行字符串
更多字符串...
]]>.Value
请注意,第一行的<![CDATA[和最后一行的]]>.Value是语法要求,并不包括在字符串内容中,切记。
加载HTML字符串
利用NavigateToString方法,可以直接加载HTML字符串:
Dim
html
As
String
=
<![CDATA[
<!DOCTYPE html>
<html>
<head><title>本地HTML</title></head>
<body>
<h1>这是直接加载的HTML字符串</h1>
<p>来自Foxtable的问候</p>
</body>
</html>
]]>.Value
Dim
wv
As
WebViewer = e.Form.Controls("WebViewer1").WebViewer
wv.NavigateToString(html)
有了这个方法,我们可以直接将设计好的网页存储在数据库中,然后根据需要查询加载。
当然也可以和示例代码一样,将网页直接嵌入到Foxtable的代码中,未来多数测试网页都会用这种形式提供,因为更便于大家学习,实际开发的时候,网页和代码还是分离的比较好。
Source属性
WebViewer有个Soure属性,也可以用于打开网页:
wv.Source =
New
Uri("https://www.example.com/")
Source其实就是Navigate的封装,所以一般推荐用Navigate或NavigateToString打开网页,而不是用Source。
但如果需要获得当前网址,则需要使用Source属性,注意Source的类型Uri,所以需要转转一下,例如:
Dim
wv
As
WebViewer = e.Form.Controls("WebViewer1").WebViewer
Dim
sr1
As
String
= wv.Source.ToString()
'获得完整的网址,包括参数
Dim
sr2
As
String
= wv.CoreWebView2.Source
'和上面等效
Dim
sr3
As
String
= wv.Source.Host
'获得去掉参数后的网址,通常就是域名