初始化时设置

WebView2的初始化方式如下:

    var env = await CoreWebView2Environment.CreateAsync();
    await webView.EnsureCoreWebView2Async(env);

它可以通过创建一个变量来初始化,这个变量的工厂函数定义如下:

    public static async Task<CoreWebView2EnvironmentCreateAsync(
        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                  是否启用默认的错误对话框