我正在开发一款银行设备上的应用程序,其中使用了cefsharp浏览器。由于该应用程序将被任何人使用,因此不应保存任何前一个用户可以看到的数据。我想在关闭浏览器后清除所有缓存的浏览器数据。
public void InitBrowser()
{
settings = new CefSettings();
settings.CachePath = AppDomain.CurrentDomain.BaseDirectory + "cache";
settings.CefCommandLineArgs.Add("disable-application-cache", "1");
settings.CefCommandLineArgs.Add("disable-session-storage", "1");
if (!Cef.IsInitialized) Cef.Initialize(settings);
webBrowser = new CefSharp.Wpf.ChromiumWebBrowser();
MainGrid.Children.Add(webBrowser);
}
在名为WebPages_Exit的函数调用后,我希望清除所有缓存数据。如何在不移除浏览器实例或关闭CEF的情况下删除所有缓存数据呢?因为CEF不能被初始化两次,并且在释放浏览器实例后创建另一个实例是行不通的。
我在ICookieVisitor中实现了visit函数来保存cookie,并使用deleteCookies方法或禁用缓存cefSetting命令等方法,但都没有效果,因为cookie列表为空,而IcookieVisitor的visit函数从未被调用。看起来它保存在另一个部分,并且只有在CEF关闭时才会重置。
DeleteCookies()
will just delete cookies, not cached data such as css, js, etc. For that I think you need to useBrowser.GetBrowser.Reload(True)
- CrazyTim