为 WebView2 设置缓存目录

use*_*067 6 .net c# chromium webview2

我在 WPF 控件中使用 WebView2 来托管新的边缘。

在我的代码中,我想将 cookie 和浏览器特定数据缓存到缓存目录。创建 CoreWebView2Environment 时,应在 CoreWebView2EnvironmentOptions 中设置缓存位置。

有什么办法可以做到这一点吗?提前致谢。

way*_*ure 10

这也有效:

Environment.SetEnvironmentVariable("WEBVIEW2_USER_DATA_FOLDER", "C:\MyDirectory\")
Run Code Online (Sandbox Code Playgroud)


Dav*_*ney 7

您可以在CoreWebView2Environment.CreateAsync方法中设置用户数据文件夹。它的第二个参数和其他参数可能为空。

然后,您可以让 WPF WebView 使用您的 CoreWebView2Environment 通过调用WebView2.EnsureCoreWebView2Async 方法来创建其 CoreWebView2 。

但是,您必须在设置 WebView2.Source 属性之前调用EnsureCoreWebView2Async,因为设置该属性会隐式导致从默认CoreWebView2Environment 开始初始化。

您可以在WebView2 文档摘要部分阅读有关 WPF WebView2 控件初始化的更多信息。


小智 7

我使用 WebView2 制作了一个 WPF 应用程序,它将缓存目录设置为用户 appdata 文件夹。下面是我的应用程序的代码片段。

var webView2Environment = await CoreWebView2Environment.CreateAsync(null, _cacheFolderPath);
await kioskBrowser.EnsureCoreWebView2Async(webView2Environment);

kioskBrowser.Source = new Uri(url);
Run Code Online (Sandbox Code Playgroud)

你可以在这里找到其余的代码 KioskBrowser (GitHub)