SGDownloadManager.h 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. //
  2. // SGDownloadManager.h
  3. // OfflineBreakPointDownload
  4. //
  5. // Created by Shangen Zhang on 16/11/26.
  6. // Copyright © 2016年 Shangen Zhang. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "SGDownloadOperation.h"
  10. /** 下载中通知 */
  11. #define SGDownloadTaskExeing @"SGDownloadTaskExeing"
  12. /** 下载失败通知 */
  13. #define SGDownloadTaskExeError @"SGDownloadTaskExeError"
  14. /** 下载完成通知 */
  15. #define SGDownloadTaskExeEnd @"SGDownloadTaskExeEnd"
  16. /** 下载暂停/等待中通知 */
  17. #define SGDownloadTaskExeSuspend @"SGDownloadTaskExeSuspend"
  18. /** 删除下载任务通知 */
  19. #define SGDownloadTaskExeDelete @"SGDownloadTaskExeDelete"
  20. /** 移除loading通知 */
  21. #define SGDownloadRemoveLoading @"SGDownloadRemoveLoading"
  22. /**
  23. block 回调
  24. */
  25. typedef void(^SGDownloadBeginBlock)(NSString * filePath);
  26. typedef void(^SGDownloadProgressBlock)(NSInteger completeSize,NSInteger expectSize);
  27. typedef void(^SGDownloadCompleteBlock)(NSDictionary *respose,NSError *error);
  28. /**
  29. 下载管理
  30. */
  31. @interface SGDownloadManager : NSObject
  32. /** 获取全部下载任务 */
  33. - (NSMutableArray *)getAllOperation;
  34. /** 实例化对象(单例) */
  35. + (instancetype)shareManager;
  36. #pragma mark - 添加下载任务同时开启任务下载
  37. /** 开启下载任务 监听完成下载 */
  38. - (void)downloadWithURL:(NSURL *)url
  39. complete:(SGDownloadCompleteBlock)complete;
  40. - (void)downloadWithURL:(NSURL *)url
  41. fileType:(NSInteger)fileType
  42. fileSize:(NSInteger)fileSize
  43. complete:(SGDownloadCompleteBlock)complete;
  44. /** 开启下载任务 监听下载进度、完成下载 */
  45. - (void)downloadWithURL:(NSURL *)url
  46. progress:(SGDownloadProgressBlock)progress
  47. complete:(SGDownloadCompleteBlock)complete;
  48. /** 开启下载任务 监听开始下载信息、下载进度、完成下载 */
  49. - (void)downloadWithURL:(NSURL *)url
  50. begin:(SGDownloadBeginBlock)begin
  51. progress:(SGDownloadProgressBlock)progress
  52. complete:(SGDownloadCompleteBlock)complete;
  53. #pragma mark - 队列中的任务进行操作
  54. /** 开始任务(不会自动添加任务,列队中没有就直接返回) */
  55. - (void)startDownLoadWithUrl:(NSString *)url;
  56. /** 暂停任务(暂停下载url内容的任务) */
  57. - (void)supendDownloadWithUrl:(NSString *)url;
  58. /** 取消任务(取消下载url内容的任务) */
  59. - (void)cancelDownloadWithUrl:(NSString *)url;
  60. /** 暂停当前所有的下载任务 下载任务不会从列队中删除 */
  61. - (void)suspendAllDownloadTask;
  62. /** 开启当前列队中所有被暂停的下载任务 */
  63. - (void)startAllDownloadTask;
  64. /** 停止当前所有的下载任务 调用此方法会清空所有列队下载任务 */
  65. - (void)stopAllDownloads;
  66. @end