public class MyDownloadHandler : IDownloadHandler
{
public event EventHandler<DownloadItem> OnBeforeDownloadFired;
public event EventHandler<DownloadItem> OnDownloadUpdatedFired;
public void OnBeforeDownload(IWebBrowser chromiumWebBrowser,IBrowser browser,DownloadItem downloadItem,IBeforeDownloadCallback callback)
{
SharedData.Log.Info(Constants.CONST_TEXT_LOG_DEBUG_DATA + Constants.CONST_TEXT_LOG_DEBUG_DATA_DELIMITER + "CEF OnBeforeDownload : started");
OnBeforeDownloadFired?.Invoke(this,downloadItem);
if (!callback.IsDisposed)
{
using (callback)
{
callback.Continue(downloadItem.SuggestedFileName,showDialog: true);
}
}
SharedData.Log.Info(Constants.CONST_TEXT_LOG_DEBUG_DATA + Constants.CONST_TEXT_LOG_DEBUG_DATA_DELIMITER + "CEF OnBeforeDownload : ended");
}
public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser,IDownloadItemCallback callback)
{
SharedData.Log.Info(Constants.CONST_TEXT_LOG_DEBUG_DATA + Constants.CONST_TEXT_LOG_DEBUG_DATA_DELIMITER + "CEF OnDownloadUpdated : started");
OnDownloadUpdatedFired?.Invoke(this,downloadItem);
}
显示下载进度条,但没有进行下载,OnBeforeDownload
事件不起作用:
public DxLogin(string url)
{
Cef.Initialize(cefSettings);
dxloginpage = new ChromiumWebBrowser();
dxloginpage.DownloadHandler = new MyDownloadHandler();
InitializeComponent();
dxloginpage.Address = url;
}