CefSharp OnBeforeDownload 处理程序打开 打开文件 window 而不是保存 window
CefSharp OnBeforeDownload handler opening Open file window instead of save window
我在我的 windows 项目中使用 CefSharp[49]
下载处理程序用于根据特定条件取消下载。
下面是我的处理程序,我面临的问题是 window 开口是 'Open File' window 而不是 'Save as' window。
public void OnBeforeDownload(IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
{
if (!callback.IsDisposed)
{
using (callback)
{
if (_allowDownload)
callback.Continue(downloadItem.SuggestedFileName, showDialog: true);
else
downloadItem.IsCancelled = !_allowDownload;
}
}
}
我使用下面的代码作为解决方法
public void OnBeforeDownload(IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
{
if (!callback.IsDisposed)
{
using (callback)
{
if (_allowDownload)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.FileName = downloadItem.SuggestedFileName;
saveFileDialog.Filter ="|*"+ System.IO.Path.GetExtension(saveFileDialog.FileName);
if (saveFileDialog.ShowDialog() == DialogResult.OK && saveFileDialog.FileName != "")
{
downloadItem.SuggestedFileName = saveFileDialog.FileName;
}
else
**downloadItem.IsCancelled = _allowDownload;**
}
else
**downloadItem.IsCancelled = !_allowDownload;**
callback.Continue(downloadItem.SuggestedFileName, showDialog: false);
}
}
}
public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
{
if (downloadItem.IsComplete || downloadItem.IsCancelled)
browser.CloseBrowser(true);
}
我在我的 windows 项目中使用 CefSharp[49] 下载处理程序用于根据特定条件取消下载。
下面是我的处理程序,我面临的问题是 window 开口是 'Open File' window 而不是 'Save as' window。
public void OnBeforeDownload(IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
{
if (!callback.IsDisposed)
{
using (callback)
{
if (_allowDownload)
callback.Continue(downloadItem.SuggestedFileName, showDialog: true);
else
downloadItem.IsCancelled = !_allowDownload;
}
}
}
我使用下面的代码作为解决方法
public void OnBeforeDownload(IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
{
if (!callback.IsDisposed)
{
using (callback)
{
if (_allowDownload)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.FileName = downloadItem.SuggestedFileName;
saveFileDialog.Filter ="|*"+ System.IO.Path.GetExtension(saveFileDialog.FileName);
if (saveFileDialog.ShowDialog() == DialogResult.OK && saveFileDialog.FileName != "")
{
downloadItem.SuggestedFileName = saveFileDialog.FileName;
}
else
**downloadItem.IsCancelled = _allowDownload;**
}
else
**downloadItem.IsCancelled = !_allowDownload;**
callback.Continue(downloadItem.SuggestedFileName, showDialog: false);
}
}
}
public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
{
if (downloadItem.IsComplete || downloadItem.IsCancelled)
browser.CloseBrowser(true);
}