Откройте файл pdf, нажмите кнопку загрузки, загрузка начнется, потому что я реализовал интерфейс IDownloadHandler в качестве предлагаемого исходного кода (callback.Continue).
Я хочу заменить процесс загрузки своим собственным, Я просто хочу знать, когда нажимается кнопка щелчка, поэтому я пишу ниже код в OnBeforeDownload:
downloadItem.IsCancelled = true;
if (!callback.IsDisposed)
{
using (callback)
{
callback.Dispose();
//callback.Continue(downloadItem.SuggestedFileName, showDialog: true);
}
}
Но функция OnDownloadUpdated все еще вызывается периодически, означает ли это, что процесс загрузки все еще продолжается, как отменить процесс загрузки? спасибо!
Примечание: я использую Cefsharp.Winforms, версия 81.3.100.0, моя операционная система Windows 10, Visual Studio 2019.
===========================================
public class PDFDownloadHandler : IDownloadHandler
{
public event EventHandler<DownloadItem> OnBeforeDownloadFired;
public event EventHandler<DownloadItem> OnDownloadUpdatedFired;
private IDownloadItemCallback downloadCallback = null;
public void OnBeforeDownload(IWebBrowser webBrowser, IBrowser browser,
DownloadItem downloadItem, IBeforeDownloadCallback callback)
{
if (this.downloadCallback != null)
{
this.downloadCallback.Cancel();
}
// this is my own download dialog blabla, not call Continue here.
}
public void OnDownloadUpdated(IWebBrowser webBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
{
this.downloadCallback = callback;
OnDownloadUpdatedFired?.Invoke(this, downloadItem);
}
}
сначала вызывается OnDownloadUpdated, затем Вызывается OnBeforeDownload, затем несколько других OnDownloadUpdated ....