初始化时设置
WebView2的初始化方式如下:
var env = await CoreWebView2Environment.CreateAsync();
await webView.EnsureCoreWebView2Async(env);
它可以通过创建一个变量来初始化,这个变量的工厂函数定义如下:
public static async Task<CoreWebView2Environment> CreateAsync(
string browserExecutableFolder = null,
string userDataFolder = null,
CoreWebView2EnvironmentOptions options = null)
它可以传入三个参数:
-
browserExecutableFolder
-
userDataFolder
-
options
前两个参数在前面的文章中有介绍,分别是使用固定版本的Edge runtime的路径,以及自定义用户数据存储路径。第三个则又可以继续衍生,它的构造函数如下所示:
public CoreWebView2EnvironmentOptions(
string additionalBrowserArguments = null,
string language = null,
string targetCompatibleBrowserVersion = null,
bool allowSingleSignOnUsingOSPrimaryAccount = false)
除了第一个additionalBrowserArguments可以用来传入额外的启动参数外,其它的几个就一般很少使用了。
运行时设置
WebView2初始化完成后,还可以在webView.CoreWebView2.Settings中进行一些动态设置,主要包括:
-
IsScriptEnabled 是否启用JS脚本
-
IsWebMessageEnabled 是否启用WebMessage
-
AreDefaultScriptDialogsEnabled 是否启用默认的对话框
-
IsStatusBarEnabled 是否显示状态栏,关闭时鼠标悬浮在链接上时右下角没有url地址显示
-
AreDevToolsEnabled 是否启用开发工具, 默认为true,关闭时菜单中的相应选项也一起关闭
-
AreDefaultContextMenusEnabled 是否启用右键菜单
-
AreHostObjectsAllowed 是否启用脚本的HostObject注入
-
IsZoomControlEnabled 是否启用缩放
-
IsBuiltInErrorPageEnabled 是否启用默认的错误对话框