• C# WebBrowser(Google内核版) CefSharp 49.01 解决不支持文件下载问题


    背景:

    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;

    亲测有效,打完收工

  • 相关阅读:
    Windows环境下消息中间件RabbitMq的搭建与应用
    6.异常释放锁的情况
    5.synchronized锁重入
    4.脏读
    3.多线程(同步、异步)
    2.多线程(同步类级别锁)
    1.多线程同步
    24.Semaphore
    23.读写锁ReadWriteLock
    22.线程通信Condition
  • 原文地址:https://www.cnblogs.com/jianghaidong/p/9083035.html
Copyright © 2020-2023  润新知