ASDownload是一个提供下载功能的库,返回信息全面,使用简单,提供的功能满足绝大数应用的需求。
基本功能:
该库采用block的方式回调下载进度,下载速度,下载状态,下载时长,下载大小等信息。
特色功能
- 断点下载
- 控制同时下载任务数量
- 回调任务不能下载的原因
- 杀死进程进度保留,下次继续下载
主要方法介绍
- /**
- 开启下载任务
-
- @param url 下载地址
- @param progressBlock 进度回调
- @param stateBlock 状态回调
- */
- - (ASDownloadTaskState)download:(NSString *)url progress:(ASDownloadingBlock)progressBlock state:(ASDownloadStateBlock)stateBlock;
- 复制代码
- /**
- 同时下载任务数量
- 超过最大下载数,任务会等待下载,并依次执行,但是杀死程序后,这些等待的任务将不会依次下载,需要手动调用恢复下载方法
- @param maximumConnections 数量(默认没有限制)
- */
- - (void)setMaximumConnection:(NSInteger)maximumConnections;
- 复制代码
- /**
- 恢复下载任务 (不可用于创建任务。暂停、失败和等待中的任务可以调用 )
-
- @param url 任务的下载地址
- */
- - (void)resumeDownload:(NSString *)url;
-
- /**
- 暂停下载任务
-
- @param url 任务的下载地址
- */
- - (void)pauseDownload:(NSString *)url;
- 复制代码
- /** 下载状态 */
- typedef NS_ENUM(NSInteger, ASDownloadState) {
- /** 没有该任务 */
- ASDownloadStateNoTask = 0,
- /** 等待下载 */
- ASDownloadStateWaiting,
- /** 下载中 */
- ASDownloadStateLoading,
- /** 下载暂停 */
- ASDownloadStatePause,
- /** 下载完成 */
- ASDownloadStateCompleted,
- /** 下载失败 */
- ASDownloadStateFailed,
- };
- 复制代码
- /**
- 下载中的回调
-
- @param progress 进度
- @param speed 速度
- @param remainingTime 剩余时间
- @param writtenSize 写入大小
- @param totalSize 总大小
- */
- typedef void(^ASDownloadingBlock)(CGFloat progress, NSString *speed, NSString *remainingTime, NSString *writtenSize, NSString *totalSize);
-
- /**
- 下载状态的回调
-
- @param state 下载状态
- */
- typedef void(^ASDownloadStateBlock)(ASDownloadState state)
- 复制代码
使用方法
- //设置同时下载任务数量 默认不限制
- [[ASDownloadManger sharedInstance] setMaximumConnection:1];
-
- /**
- state 返回任务是否可下载 以及不可下载原因
- progress 下载进度回调
- state 下载状态回调
- */
- //下载方法
- ASDownloadTaskState state = [[ASDownloadManger sharedInstance] download:url progress:nil state:nil];
- switch (state) {
- case ASDownloadTaskStateUrlNil:
- //下载地址为空
- break;
- case ASDownloadTaskStateUrlRrror:
- //下载地址错误
- break;
- case ASDownloadTaskStateCompleted:
- //此任务已下载完成
- break;
- case ASDownloadTaskStateCanDownload:
- //可下载
- break;
- default:
- break;
- }
- 复制代码
更多的使用方法请参见DEMO
作者:meetly 联系作者: QQ: 469091701 邮箱: meet_ly@163.com DEMO地址: github.com/meetly/ASDo…