为 WebView2 设置缓存目录
Posted
技术标签:
【中文标题】为 WebView2 设置缓存目录【英文标题】:Set Cache directory for WebView2 【发布时间】:2020-10-09 17:39:06 【问题描述】:我在 WPF 控件中使用 WebView2 来托管新边缘。
在我的代码中,我想将 cookie 和浏览器特定数据缓存到缓存目录。创建 CoreWebView2Environment 时应在 CoreWebView2EnvironmentOptions 中设置缓存位置。
有什么方法可以实现吗?提前致谢。
【问题讨论】:
谷歌出现this。 【参考方案1】:您可以在CoreWebView2Environment.CreateAsync 方法中设置用户数据文件夹。它的第二个参数和其他参数可能为空。
然后,您可以通过调用 WebView2.EnsureCoreWebView2Async method 让 WPF WebView 使用您的 CoreWebView2Environment 创建其 CoreWebView2。
但是,您必须在设置 WebView2.Source 属性之前调用 EnsureCoreWebView2Async,因为设置该属性会隐式导致初始化以默认的 CoreWebView2Environment 开始。
您可以在WebView2 documentation summary 部分阅读有关 WPF WebView2 控件初始化的更多信息。
【讨论】:
【参考方案2】:我使用 WebView2 制作了一个 WPF 应用程序,它将缓存目录设置为用户 appdata 文件夹。下面是我的应用程序代码的 sn-p。
var webView2Environment = await CoreWebView2Environment.CreateAsync(null, _cacheFolderPath);
await kioskBrowser.EnsureCoreWebView2Async(webView2Environment);
kioskBrowser.Source = new Uri(url);
您可以在此处找到其余代码 KioskBrowser (GitHub)
【讨论】:
以上是关于为 WebView2 设置缓存目录的主要内容,如果未能解决你的问题,请参考以下文章
Wpf.Webview2.CoreWebview2.get 返回 null。对象引用未设置为对象的实例