编程技术记录

世界你好!

CEF3关于文件下载的开放接口是CefDownloadHandler,这个类的公开函数也挺简单的,就两个:一个是下载前OnBeforeDownload,一个是下载状态更新OnDownloadUpdated

class CefDownloadHandler : public virtual CefBaseRefCounted {
 public:
  /// 文件下载前调用
  // suggested_name  (建议的)文件保存名
  // callback  回调,用来通知下载动作继续进行。默认情况下,如果不主动调用这个回调,则会取消下载动作。
  virtual void OnBeforeDownload(
      CefRefPtr browser,
      CefRefPtr download_item,
      const CefString& suggested_name,
      CefRefPtr callback) = 0;

  /// 用来通知下载状态信息,包括下载进度、总大小、已完成大小、是否完成等;这个方法可能会被调用多次,以用来持续更新下载状态
 // download_item  下载项,下载的状态信息保存在这里。
 // callback  回调,用来取消/暂停/恢复/下载。默认情况下,如果不主动调用这个回调,则会继续下载。
  virtual void OnDownloadUpdated(CefRefPtr browser,
                                 CefRefPtr download_item,
                                 CefRefPtr callback) {}
};

需要注意的是,上面两个方法都有一个download_item参数,这个参数是不能在上面两个方法的作用域外使用的。

© Beli. All Rights Reserved.