// // mixDownloadManager.h // 双子星云手机 // // Created by xd h on 2024/6/27. // #import #import "mixDownloadOperation.h" NS_ASSUME_NONNULL_BEGIN #define KMixDownloadUID [mixDownloadManager shareManager].uid /** 下载中通知 */ #define mixDownloadTaskExeing @"mixDownloadTaskExeing" /** 下载失败通知 */ #define mixDownloadTaskExeError @"mixDownloadTaskExeError" /** 下载完成通知 */ #define mixDownloadTaskExeEnd @"mixDownloadTaskExeEnd" /** 下载暂停/等待中通知 */ #define mixDownloadTaskExeSuspend @"mixDownloadTaskExeSuspend" /** 删除下载任务通知 */ #define mixDownloadTaskExeDelete @"mixDownloadTaskExeDelete" /** 移除loading通知 */ #define SGDownloadRemoveLoading @"mixDownloadRemoveLoading" /** block 回调 */ typedef void(^MixDownloadBeginBlock)(NSString * filePath); typedef void(^MixDownloadProgressBlock)(NSInteger completeSize,NSInteger expectSize); typedef void(^MixDownloadCompleteBlock)(NSDictionary *respose,NSError *error); @interface mixDownloadManager : NSObject @property(nonatomic,strong) NSString *uid;//用户id 用来创建文件夹路径 防止不要用户的缓存关联 /** 实例化对象(单例) */ + (instancetype)shareManager; /** 获取全部下载任务 */ - (NSMutableArray *)getAllOperation; #pragma mark - 添加下载任务同时开启任务下载 /** 开启下载任务 监听完成下载 */ - (void)downloadWithURL:(NSURL *)url complete:(MixDownloadCompleteBlock)complete; #pragma mark - 队列中的任务进行操作 /** 开始任务(不会自动添加任务,列队中没有就直接返回) 后续改为会自动添加任务 */ - (void)startDownLoadWithUrl:(NSString *)url; /** 暂停任务(暂停下载url内容的任务) */ - (void)supendDownloadWithUrl:(NSString *)url; /** 取消任务(取消下载url内容的任务) */ - (void)cancelDownloadWithUrl:(NSString *)url; /** 暂停当前所有的下载任务 下载任务不会从列队中删除 */ - (void)suspendAllDownloadTask; /** 开启当前列队中所有被暂停的下载任务 */ - (void)startAllDownloadTask; /** 停止当前所有的下载任务 调用此方法会清空所有列队下载任务 */ - (void)stopAllDownloads; @end NS_ASSUME_NONNULL_END