VisualFreeBasic控件_WebView Edge浏览器

2026-1-20 / 0 评论 / 365 阅读

由于IE已经无法支持现代网页,而Edge都是支持,而且是系统自带,我们写的软件就不需要附带非常大的浏览器引擎了。

最低支持WIN10系统

Edge内核的浏览器,只支持 WIN10 或以后系统,其它系统由于没带此内核无法使用。WIN7,WIN8 等系统不支持,用了这个控件,无法使用。
注:WIn7和WIN8系统需要安装Edge运行库,才可以使用。

缓存路径


使用后,控件会自动创建一个 “EBWebView”文件夹来保存缓存文件,每个软件相互独立,里面会产生大量文件,关软件也不会自动删除。
注意:并不是VFB的控件这样,所有用了Edge内核的浏览器的软件,都会如此,一般都在“%LOCALAPPDATA%”里。

缓存属性设置

  1. 没设置内容,会自动在“%LOCALAPPDATA%\exe基名” 里保存
  2. 设置为“.” 就是数字的小数点,那么会在 EXE 的文件夹里保存
  3. 设置为任意文字,那么会在 EXE的文件夹里创建 这个文字的文件夹里保存

假如你需要自己用代码设置缓存保存的文件夹,就使用以下代码设置
注:必须在入口函数里写,控件缓存属性必须为空。字符编码是 UTF8

Function FF_WINMAIN(ByVal hInstance As HINSTANCE) As Long '程序入口函数
   Dim 文件夹 as String =wStrToUtf8("c:\测试")
   webview_set_user_data_folder 文件夹 
   Function = False
End Function

设置导航网址

   '空白页面
   WebView1.Url="about:blank"
   '网站
   WebView1.Url="http://www.yfvb.com"
   '本地文件
   WebView1.Url="file:///C:/wwwroot/site/index.html"

直接设置网页代码

WebView1.Html ="<h1>测试页面</h1>"
或完整的
Dim html As String

html = "<!DOCTYPE html>" & vbCrLf
html = html & "<html>" & vbCrLf
html = html & "<head>" & vbCrLf
html = html & "    <meta charset=""utf-8"">" & vbCrLf
html = html & "    <title>测试页面</title>" & vbCrLf
html = html & "    <style>" & vbCrLf
html = html & "        body { font-family: Microsoft YaHei; padding: 20px; }" & vbCrLf
html = html & "        h1 { color: #333; }" & vbCrLf
html = html & "        button { padding: 8px 16px; }" & vbCrLf
html = html & "    </style>" & vbCrLf
html = html & "</head>" & vbCrLf
html = html & "<body>" & vbCrLf
html = html & "    <h1>这是 WebView2 直接加载的网页</h1>" & vbCrLf
html = html & "    <p>当前时间:<span id=""time""></span></p>" & vbCrLf
html = html & "    <button onclick=""showMsg()"">点我</button>" & vbCrLf
html = html & "    <script>" & vbCrLf
html = html & "        document.getElementById('time').innerText = new Date().toLocaleString();" & vbCrLf
html = html & "        function showMsg() { alert('按钮被点击了'); }" & vbCrLf
html = html & "    </script>" & vbCrLf
html = html & "</body>" & vbCrLf
html = html & "</html>"
WebView1.Html=html

主要事件

'[Form1.WebView1]事件 : 导航开始
'Url             目标网址(utf8)
'IsUserInitiated 是否用户点击触发
'Cancel          是否取消,Cancel = 1 取消本次导航
'拦截某网址示例:If InStr(*Url, "abc.com") Then Cancel = 1
Sub Form1_WebView1_NavigationStarting(hWndForm As hWnd, hWndControl As hWnd, Url As ZString Ptr, IsUserInitiated As Long, ByRef Cancel As Long)

End Sub

'[Form1.WebView1]事件 : 页面请求打开新窗口
'包含target = _blank / window.open / 弹窗
'Url    最终网址(UTF8)
'Cancel 是否拦截,Calcel = 1 拦截新窗口改为本控件内打开
'拦截新窗口示例:Cancel = 1 : WebView1.URL = *Url
Sub Form1_WebView1_NewWindowRequested(hWndForm As hWnd, hWndControl As hWnd, Url As ZString Ptr, ByRef Cancel As Long)

End Sub

评论一下?

OωO
取消