You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# WinForms应用中WebView2缓存清除方法

在WinForms WebView2中关闭窗体时清除缓存的实现方法

要在窗体关闭时清除WebView2的所有访问缓存,你可以利用WebView2核心对象的ClearBrowsingDataAsync方法,在FormClosed事件中执行清理操作,具体步骤如下:

步骤1:绑定FormClosed事件

如果你的窗体还没绑定FormClosed事件,先在构造函数或者设计器中添加事件绑定:

public YourFormName()
{
    InitializeComponent();
    this.FormClosed += Form_FormClosed;
}

步骤2:编写缓存清理逻辑

在FormClosed事件处理方法中,先判断WebView2的核心对象(CoreWebView2)是否已初始化,再调用清理方法:

private async void Form_FormClosed(object sender, FormClosedEventArgs e)
{
    // 确保WebView2核心对象已完成初始化,避免空引用异常
    if (webView21.CoreWebView2 != null)
    {
        // 选择要清除的数据类型:这里指定清除所有缓存相关数据
        // 如果你只需要清除缓存,可替换为 CoreWebView2BrowsingDataKinds.Cache
        var targetData = CoreWebView2BrowsingDataKinds.All;
        
        // 清除从系统纪元开始到当前时间的所有指定类型数据
        await webView21.CoreWebView2.ClearBrowsingDataAsync(
            DateTimeOffset.MinValue, 
            DateTimeOffset.Now, 
            targetData
        );
    }
}

注意事项

  • 必须确保webView21.CoreWebView2不为null,否则会抛出空引用异常。如果你的WebView2是延迟初始化的,可能需要额外判断。
  • async void在事件处理方法中是合法的,但如果需要处理异常,可以在方法内部添加try-catch块。
  • 除了Cache,CoreWebView2BrowsingDataKinds还支持单独清除Cookie、历史记录、本地存储等,可根据需求组合指定。

内容的提问来源于stack exchange,提问作者Zaid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 03:03:19