背景:

Webbrowser倒是支持文件下载,但是由于使用的是IE内核,导致部分网站不兼容

所以使用Google内核的CefSharp

由于要支持Windows xp,所以最高只能使用49.01版本

废话说完了,开始正题

只需要两个步骤

1、在自己的项目里,新增一个类DownloadHandler继承IDownloadHandler,并实现里面的接口,代码如下,可以直接复制

/// <summary>
    /// 继承CEF文件下载接口,并实现 jhd_006 2018-5-24 15:06:20
    /// </summary>
    public class DownloadHandler : IDownloadHandler
    {
        public void OnBeforeDownload(IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
        {
            if (!callback.IsDisposed)
            {
                using (callback)
                {
                    callback.Continue(downloadItem.SuggestedFileName, showDialog: true);
                }
            }
        }

        public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
        {

        }
    }

2、在创建ChromiumWebBrowser的代码中加入以下代码

CefSharp.WinForms.ChromiumWebBrowser browser = new CefSharp.WinForms.ChromiumWebBrowser(str);
/** 以上是我自己的代码,实例化了一个ChromiumWebBrowser **/

/** 下面为新增的代码 **/
DownloadHandler downer = new DownloadHandler();
browser.DownloadHandler = downer;

亲测有效,打完收工