using CefSharp;
public ChromiumWebBrowser browser;
NativeAppJsObjBasic NativeAppJsObj;
//窗体部分
private void FrmWebView_Load(object sender, EventArgs e)
{
browser = new ChromiumWebBrowser(URL);
panel1.Controls.Add(browser);
browser.Dock = DockStyle.Fill;
NativeAppJsObj = new NativeAppJsObjBasic();
browser.RegisterJsObject("NativeAppJsObj", NativeAppJsObj, true);
NativeAppJsObj.OnSessionExpired += NativeAppJsObj_OnSessionExpired;
browser.IsBrowserInitializedChanged += Browser_IsBrowserInitializedChanged;
browser.DownloadHandler = new MyDownLoadFile();
}
/// <summary>
/// 响应下载文件兼容
/// </summary>
public class MyDownLoadFile : IDownloadHandler
{
public void OnBeforeDownload(IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
{
if (!callback.IsDisposed)
{
using (callback)
{
callback.Continue(@"C:\Users\" +
System.Security.Principal.WindowsIdentity.GetCurrent().Name +
@"\Downloads\" +
downloadItem.SuggestedFileName,
showDialog: true);
}
}
}
public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
{
//downloadItem.IsCancelled = false;
}
public bool OnDownloadUpdated(CefSharp.DownloadItem downloadItem)
{
return false;
}
}
本文介绍如何在Windows Forms应用中使用CefSharp库,通过IDownloadHandler接口处理网页下载请求,并弹出保存对话框供用户选择保存位置。在`FrmWebView_Load`事件中设置ChromiumWebBrowser的DownloadHandler属性,创建`MyDownLoadFile`类实现`OnBeforeDownload`方法,以确定文件保存路径并显示保存对话框。
887

被折叠的 条评论
为什么被折叠?



