行业知识
【C#】用CefSharp.ChromiumWebBrowser做winform开发过程中遇到的一些坑
2026-11-11 21:12:43
来源:互联网转载
文章目录
- 使用键盘F5刷新、F12打开控制台
- 浏览器默认下载弹窗
- 禁用GPU配置
- 跨域问题
使用键盘F5刷新、F12打开控制台
public class CEFKeyBoardHander : IKeyboardHandler{ public bool OnKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey) { if (type == KeyType.KeyUp && Enum.IsDefined(typeof(Keys), windowsKeyCode)) { var key = (Keys)windowsKeyCode; switch (key) { case Keys.F12: browser.ShowDevTools(); break; case Keys.F5: if (modifiers == CefEventFlags.ControlDown) { //MessageBox.Show("ctrl+f5"); browser.Reload(true); //强制忽略缓存 } else { //MessageBox.Show("f5"); browser.Reload(); } break; } } return false; } public bool OnPreKeyEvent(IWebBrowser browserControl, IBrowser browser, KeyType type, int windowsKeyCode, int nativeKeyCode, CefEventFlags modifiers, bool isSystemKey, ref bool isKeyboardShortcut) { return false; }}WebBrowser = new ChromiumWebBrowser();this.Controls.Add(WebBrowser);WebBrowser.KeyboardHandler = new CEFKeyBoardHander();
浏览器默认下载弹窗
public class CefDownloadHandler : IDownloadHandler{ public event EventHandler OnBeforeDownloadFired; public event EventHandler OnDownloadUpdatedFired; public bool CanDownload(IWebBrowser chromiumWebBrowser, IBrowser browser, string url, string requestMethod) { //可以支持全部,也可以根据配置去自定义支持的文件类型 //return "xls|xlsx".Split('|').ToList().Contains(url.Substring(url.LastIndexOf(".") + 1).ToLower()); return true; } public void OnBeforeDownload(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback) { OnBeforeDownloadFired?.Invoke(this, downloadItem); if (!callback.IsDisposed) { using (callback) { callback.Continue(downloadItem.SuggestedFileName, showDialog: true); } } } public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback) { OnDownloadUpdatedFired?.Invoke(this, downloadItem); }}WebBrowser = new ChromiumWebBrowser();WebBrowser.DownloadHandler = new CefDownloadHandler();
禁用GPU配置
var setting = new CefSettings();setting.CefCommandLineArgs.Add("disable-gpu", "1")跨域问题
setting.CefCommandLineArgs.Add("--disable-web-security", "");待续未完……
上一篇:腾讯管家服务器怎么安装?
下一篇:没有服务器怎么架设传奇?