背景:
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;
亲测有效,打完收工