代码之家  ›  专栏  ›  技术社区  ›  Myronaz

如何在WinForms VB中设置WebView2用户数据文件夹。网络应用?

  •  0
  • Myronaz  · 技术社区  · 2 年前

    我需要将用户数据文件夹设置为我选择的自定义路径,以便对其进行控制。 In Microsoft's documentation ,说明可以在初始化环境之前使用CoreWebView2Environment类设置该选项。

    但这是针对C#,而不是WinForms VB。NET(.NET Framework)。甚至连一个电话都没有 CoreWebView2Environment 在名称空间中,只有 CoreWebView2.Environment 它没有相同的函数,但似乎有一个函数以只读字符串的形式返回路径。

    我找不到任何关于这门课的文档。有人知道这是否可行吗?

    0 回复  |  直到 2 年前
        1
  •  2
  •   user246821    2 年前

    显式初始化 CoreWebView2 ,请尝试以下操作:

    添加以下Imports语句 :

    • Imports Microsoft.Web.WebView2.Core
    • Imports Microsoft.Web.WebView2
    • Imports System.IO

    初始化EcoreWebView2Async :

    Private Async Function InitializeCoreWebView2Async(Optional userDataFolder As String = "") As Task
        Dim options As CoreWebView2EnvironmentOptions = Nothing
        Dim cwv2Environment As CoreWebView2Environment = Nothing
    
        'it's recommended to create the userDataFolder in the same location
        'that your other application data is stored (ie: in a folder in %APPDATA%)
        'if not specified, we'll create a folder in %TEMP%
        If String.IsNullOrEmpty(userDataFolder) Then
            userDataFolder = Path.Combine(Path.GetTempPath(), System.Reflection.Assembly.GetExecutingAssembly().GetName().Name)
        End If
    
        'create WebView2 Environment using the installed or specified WebView2 Runtime version.
        'cwv2Environment = Await CoreWebView2Environment.CreateAsync("C:\Program Files (x86)\Microsoft\Edge Dev\Application\1.0.1054.31", userDataFolder, options)
        cwv2Environment = Await CoreWebView2Environment.CreateAsync(Nothing, userDataFolder, options)
    
        'initialize
        Await WebView21.EnsureCoreWebView2Async(cwv2Environment)
    End Function
    

    笔记 :如果希望显式初始化 CoreWebView2 ,必须在设置 Source 房地产 WebView2 控制

    用法 :

    Await InitializeCoreWebView2Async(Path.Combine("C:\Temp", System.Reflection.Assembly.GetExecutingAssembly().GetName().Name))
    

    如果您在表单(例如:Form1.vb)中调用它,那么您应该执行以下操作:

    Private Async Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    
        System.Diagnostics.Debug.WriteLine("MS Edge Version: " & CoreWebView2Environment.GetAvailableBrowserVersionString())
    
        'initialize 
        'Await InitializeCoreWebView2Async()
        Await InitializeCoreWebView2Async(Path.Combine("C:\Temp", System.Reflection.Assembly.GetExecutingAssembly().GetName().Name))
    
        'ToDo: add desired code, such as navigating to a URL
    
    End Sub
    

    笔记 : CoreWebView2CreationProperties 可能也有兴趣。

    资源 :