mixDownloadManager.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. //
  2. // mixDownloadManager.h
  3. // 双子星云手机
  4. //
  5. // Created by xd h on 2024/6/27.
  6. //
  7. #import <Foundation/Foundation.h>
  8. #import "mixDownloadOperation.h"
  9. NS_ASSUME_NONNULL_BEGIN
  10. #define KMixDownloadUID [mixDownloadManager shareManager].uid
  11. /** 下载中通知 */
  12. #define mixDownloadTaskExeing @"mixDownloadTaskExeing"
  13. /** 下载失败通知 */
  14. #define mixDownloadTaskExeError @"mixDownloadTaskExeError"
  15. /** 下载完成通知 */
  16. #define mixDownloadTaskExeEnd @"mixDownloadTaskExeEnd"
  17. /** 下载暂停/等待中通知 */
  18. #define mixDownloadTaskExeSuspend @"mixDownloadTaskExeSuspend"
  19. /** 删除下载任务通知 */
  20. #define mixDownloadTaskExeDelete @"mixDownloadTaskExeDelete"
  21. /** 移除loading通知 */
  22. #define SGDownloadRemoveLoading @"mixDownloadRemoveLoading"
  23. /**
  24. block 回调
  25. */
  26. typedef void(^MixDownloadBeginBlock)(NSString * filePath);
  27. typedef void(^MixDownloadProgressBlock)(NSInteger completeSize,NSInteger expectSize);
  28. typedef void(^MixDownloadCompleteBlock)(NSDictionary *respose,NSError *error);
  29. @interface mixDownloadManager : NSObject
  30. @property(nonatomic,strong) NSString *uid;//用户id 用来创建文件夹路径 防止不要用户的缓存关联
  31. /** 实例化对象(单例) */
  32. + (instancetype)shareManager;
  33. /** 获取全部下载任务 */
  34. - (NSMutableArray *)getAllOperation;
  35. #pragma mark - 添加下载任务同时开启任务下载
  36. /** 开启下载任务 监听完成下载 */
  37. - (void)downloadWithURL:(NSURL *)url
  38. complete:(MixDownloadCompleteBlock)complete;
  39. #pragma mark - 队列中的任务进行操作
  40. /** 开始任务(不会自动添加任务,列队中没有就直接返回) 后续改为会自动添加任务 */
  41. - (void)startDownLoadWithUrl:(NSString *)url;
  42. /** 暂停任务(暂停下载url内容的任务) */
  43. - (void)supendDownloadWithUrl:(NSString *)url;
  44. /** 取消任务(取消下载url内容的任务) */
  45. - (void)cancelDownloadWithUrl:(NSString *)url;
  46. /** 暂停当前所有的下载任务 下载任务不会从列队中删除 */
  47. - (void)suspendAllDownloadTask;
  48. /** 开启当前列队中所有被暂停的下载任务 */
  49. - (void)startAllDownloadTask;
  50. /** 停止当前所有的下载任务 调用此方法会清空所有列队下载任务 */
  51. - (void)stopAllDownloads;
  52. @end
  53. NS_ASSUME_NONNULL_END