iOS Download Manager

iOS Download Manager

之前的项目中有类似于百度下载,找了几个开源项目,看了下源码,记录一下,方便自己以后

下载最好要支持后台传输,一般使用的是NSURLSession,NSURLSessionConfiguration使用的是支持background的模式

1、HWDownloadDemo

HWDownloadDemo实现了后台下载,文章iOS 大文件下载、断点续传、后台下载 —— HERO博客也对demo进行详细的说明

Demo下载链接:https://github.com/HeroWqb/HWDownloadDemo

下载的状态包括如下的几种:

typedef NS_ENUM(NSInteger, HWDownloadState) {
    HWDownloadStateDefault = 0,  // 默认
    HWDownloadStateDownloading,  // 正在下载
    HWDownloadStateWaiting,      // 等待
    HWDownloadStatePaused,       // 暂停
    HWDownloadStateFinish,       // 完成
    HWDownloadStateError,        // 错误
};

B、使用FMDB来保存下载模型,对数据进行增删改查

对更新数据库的操作类型,也进行了分类,如下:

typedef NS_OPTIONS(NSUInteger, HWDBUpdateOption) {
    HWDBUpdateOptionState         = 1 << 0,  // 更新状态
    HWDBUpdateOptionLastStateTime = 1 << 1,  // 更新状态最后改变的时间
    HWDBUpdateOptionResumeData    = 1 << 2,  // 更新下载的数据
    HWDBUpdateOptionProgressData  = 1 << 3,  // 更新进度数据(包含tmpFileSize、totalFileSize、progress、intervalFileSize、lastSpeedTime)
    HWDBUpdateOptionAllParam      = 1 << 4   // 更新全部数据
};

相关文章链接https://blog.csdn.net/hero_wqb/article/details/80407478

2、YCDownloadSession

YCDownloadSession 

3、TWRDownloadManager  

经过对比model的使用,项目最终选择了第一个第三方SDK HWDownloadManager实现了类型百度下载。


版权声明:本文为shenghanming原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。