公司的项目用到网页嵌入窗体,为了保证页面的效果选择了支持Chrome的第三方控件CefSharp,这样就不必为IE低版本浏览器做兼容。

不过在这几天准备使用Html5的localstorage的时候发现一个问题。保存了localstorage之后,只在在程序运行期间是有效。经过尝试发现在WebView初始化之前,需要设置缓存目录。代码如下:

//设置cache目录到当前bin/debug目录
var celSet = new Settings();
celSet.CachePath = System.IO.Directory.GetCurrentDirectory() + @"\cache";
CEF.Initialize(celSet);

var settings = new BrowserSettings();
wv = new WebView(targetUrl, settings);
wv.LoadCompleted += wv_LoadCompleted;

上述代码会在bin/debug下自动生成cache目录,同时需要注意的是之后网页会优先加载缓存内容,如果页面有了改动,需要清除cache目录下的缓存文件。