nasDownloadFileManager.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. //
  2. // nasDownloadFileManager.h
  3. // 双子星云手机
  4. //
  5. // Created by xd h on 2024/8/5.
  6. //
  7. #import <Foundation/Foundation.h>
  8. #import "queryOneShareModel.h"
  9. #import "nasDownloadManager.h"
  10. #import "customDownloadCacheManager.h"
  11. //#import "uploadFileManager.h"
  12. #import "couldPhoneFileListModel.h"
  13. NS_ASSUME_NONNULL_BEGIN
  14. //【IOS端】音频进行下载,下载列表提示下载到文件里,查看部分文件未成功下载到文件里
  15. //问题原因:在下载音频类(即是要保存到文件app的)文件--- UIDocumentPickerViewController 弹出来后不再处理下一个 意味着快速下载完几个任务 在完成后只能保存到一个到文件 其他的因为任务完成了 不再处理保存流程
  16. //解决方案:创建本地持久化 每次收到下载完成通知:
  17. //1.先做数据保存
  18. //2.然后再处理文件保存流程
  19. //3.删除此次保存数据
  20. //4.UIDocumentPickerViewController 保存后访问本地持久化 查询还有没有没处理的任务
  21. #define nas_box_download_tableName [[NSString alloc] initWithFormat:@"download_tableName_%@",ksharedAppDelegate.DeviceThirdIdMod.data.sn]
  22. @interface nasDownloadFileManager : NSObject
  23. +(nasDownloadFileManager *)shareInstance;
  24. //数据库数据
  25. @property (nonatomic, strong) NSMutableArray * _Nullable databaseArr;
  26. @property (nonatomic, strong) NSMutableArray * _Nullable downLoadFileModelDataArr;
  27. @property (nonatomic, assign) BOOL isFirstAutoStartType;//启动第一次需要重新开启
  28. @property (nonatomic, strong) NSMutableDictionary * _Nullable downloadDoneList;
  29. @property (nonatomic, strong) NSMutableArray * _Nullable netWorkFailSaveArr;
  30. @property (nonatomic, assign) BOOL needToReDownloadTaskType;//
  31. //添加保存记录 NSArray<couldPhoneFileModel>* fileListVOS;
  32. - (void)addNasDownloadRecordFunBy:(NSArray*)arr complete:(custom_complete_Arr)complete;
  33. #pragma mark 读取数据库数据
  34. - (void)getDataInDatabaseFun:(BOOL)isReGet complete:(custom_complete_Arr)complete;
  35. #pragma mark 删除本地数据库记录
  36. - (void)deleteBoxSaveFileRecordBy:(NSMutableArray *)delArr;
  37. //删除本地数据库记录
  38. - (void)deleteDownloadFileRecordBy:(NSMutableArray *)delArr withDelCache:(BOOL)isDelCache;
  39. //删除本地数据库记录
  40. - (void)deleteDownloadFileRecordBy:(NSMutableArray *)delArr withDelCache:(BOOL)isDelCache withAll:(BOOL)isAllType;
  41. #pragma mark 更新本地数据库记录
  42. - (void)updataBoxSaveDataInFailBy:(couldPhoneFileModel*)dataModel;
  43. #pragma mark 开始下载文件 couldPhoneFileModel
  44. - (void)beginDownloadFilesByUrls:(NSArray *)urlArr;
  45. #pragma mark 全部暂停 或者暂停某一个
  46. - (void)suspendDownloadFileFun:(BOOL)isSuspendAll withModel:(couldPhoneFileModel*)dataModel;
  47. #pragma mark 重新开始下载 arr 目前只支持一个的情况
  48. - (void)reDownloadFileFunBy:(NSMutableArray*)arr withAll:(BOOL)isAllType;
  49. #pragma mark 重新开始下载 第一次进去传输列表是用
  50. - (void)firstReDownloadAllFileFun;
  51. #pragma mark 检测是否有任务下载中或者暂停
  52. - (void)checkHadDownloadTaskWithComplete:(custom_complete_B)complete;
  53. #pragma mark-保存完成后 删除此次信息 download done plist
  54. - (void)deleteDownloadDonePlistInfoBy:(NSString*)fullPath;
  55. #pragma mark-查询还有没有没处理的任务
  56. - (void)checkDownloadDonePlistInfoFun;
  57. //网络失败后任务暂时保存
  58. - (void)saveDownloadloadingTaskByNetWorkErrorFun;
  59. //重新上传网络失败的任务
  60. - (void)reDownloadloadFileFunByNetWork;
  61. @end
  62. NS_ASSUME_NONNULL_END