c# cefsharp 下载附件时,点击没有反应

在新项目中,有个绑卡过程,如果用户没有安装安全组件的话,就得下载组件进行安装,而在cefsharp中,默认是不能下载文件的,不弹出提示框,摸索了一段时间,最终解决了

实现cefsharp的IDownloadHandler接口

public class DownloadHandler :  CefSharp.IDownloadHandler
    {

        public void OnBeforeDownload(IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
        {
            if (!callback.IsDisposed)
            {
                using (callback)
                {
                    callback.Continue(@"C:\Users\" +
                            System.Security.Principal.WindowsIdentity.GetCurrent().Name +
                            @"\Downloads\" +
                            downloadItem.SuggestedFileName,
                        showDialog: true);
                }
            }
        }

        public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
        {
            //downloadItem.IsCancelled = false;  
        }
        public bool OnDownloadUpdated(CefSharp.DownloadItem downloadItem)
        {
            return false;
        }
    }

  然后再添加浏览器控件的地方加上:

            m_webBrower = new ChromiumWebBrowser(path);

            this.webview_panel.Controls.Add(m_webBrower);
            m_webBrower.DownloadHandler = new DownloadHandler();

  完美解决。。。。

 

posted @ 2018-01-22 17:14  lijiyu11408237  阅读(30)  评论(0)    收藏  举报