高安全环境下的使用
WebViewer是基于微软的webview2二次开发完成的,而webview2默认调用的是Windows的Edge浏览器。
在政企/金融等高安全环境,对于Edge浏览器的调用可能会被禁止,所以基于WebViewer开发的软件可能会运行失败。
解决的办法很简单:
1、在微软的官方网站下载webview2的运行库:
https://developer.microsoft.com/zh-cn/microsoft-edge/webview2/?form=MA13LH#download
注意要下载固定版本,体系结构选择X86:

2、下载的运行库是一个cab格式的压缩文件,将所有文件解压到某个目录,例如"d:\webview2"。
3、在Foxtable修改代码,指定Edge可执行文件的目录,例如:
'''Async
Dim
wv
As
WebViewer = e.Form.Controls("WebViewer1").WebViewer
Dim
env
As
CoreWebView2Environment =
Await
CoreWebView2Environment.CreateAsync("d:\webview2")
'指定Edge可执行文件所在目录
Await
wv.EnsureCoreWebView2Async(env)
'按指定的Edge目录初始化浏览器
wv.CoreWebView2.Navigate("https://www.example.com/")
经过上述设置,即可绕开系统自带的Edge浏览器,甚至在没有安装Edge浏览器的电脑也能正常运行。
自动打包Webview2运行库
为方便最终用户,你可以将webview2运行库打包到你基于Foxtable开发的程序中,步骤为:
1、在项目文件目录中创建一个子目录WebView2
2、将WebView2的运行库解压到上述子目录中。
3、在发布项目窗口,添加上述子目录:

4、修改WebViewer的初始化代码:
'''Async
Dim
wv
As
WebViewer = e.Form.Controls("WebViewer1").WebViewer
Dim
env
As
CoreWebView2Environment =
Await
CoreWebView2Environment.CreateAsync(ProjectPath &
"webview2")
'指定Edge可执行文件所在目录
Await
wv.EnsureCoreWebView2Async(env)
'按指定的Edge目录初始化浏览器
wv.CoreWebView2.Navigate("https://www.example.com/")
这样发布后的程序自带webview2运行库,直接复制到其他电脑即可运行,无需再手工操作。