ASDownload是一個提供下載功能的庫,返回信息全面粘衬,使用簡單婉宰,提供的功能滿足絕大數(shù)應用的需求。
github下載地址(包含demo)
基本功能:
該庫采用block的方式回調下載進度桅滋,下載速度,下載狀態(tài)身辨,下載時長虱歪,下載大小等信息。
特色功能
- 斷點下載
- 控制同時下載任務數(shù)量
- 回調任務不能下載的原因
- 殺死進程進度保留栅表,下次繼續(xù)下載
主要方法介紹
/**
開啟下載任務
@param url 下載地址
@param progressBlock 進度回調
@param stateBlock 狀態(tài)回調
*/
- (ASDownloadTaskState)download:(NSString *)url progress:(ASDownloadingBlock)progressBlock state:(ASDownloadStateBlock)stateBlock;
/**
同時下載任務數(shù)量
超過最大下載數(shù)笋鄙,任務會等待下載,并依次執(zhí)行怪瓶,但是殺死程序后萧落,這些等待的任務將不會依次下載,需要手動調用恢復下載方法
@param maximumConnections 數(shù)量(默認沒有限制)
*/
- (void)setMaximumConnection:(NSInteger)maximumConnections;
/**
恢復下載任務 (不可用于創(chuàng)建任務洗贰。暫停找岖、失敗和等待中的任務可以調用 )
@param url 任務的下載地址
*/
- (void)resumeDownload:(NSString *)url;
/**
暫停下載任務
@param url 任務的下載地址
*/
- (void)pauseDownload:(NSString *)url;
/** 下載狀態(tài) */
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);
/**
下載狀態(tài)的回調
@param state 下載狀態(tài)
*/
typedef void(^ASDownloadStateBlock)(ASDownloadState state)
使用方法
//設置同時下載任務數(shù)量 默認不限制
[[ASDownloadManger sharedInstance] setMaximumConnection:1];
/**
state 返回任務是否可下載 以及不可下載原因
progress 下載進度回調
state 下載狀態(tài)回調
*/
//下載方法
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
聯(lián)系作者:
QQ: 469091701
郵箱: meet_ly@163.com
DEMO地址: https://github.com/meetly/ASDownload