App 2.0开发模式的行业看法
1246
2022-11-04
Tiercel是一个非常简单易用且功能丰富的纯Swift下载框架
Tiercel 是一个简单易用、功能丰富的纯 Swift 下载框架,支持原生级别后台下载,拥有强大的任务管理功能,可以满足下载类 APP 的大部分需求。
如果你使用的开发语言是 Objective-C ,可以使用 TiercelObjCBridge 进行桥接
Tiercel 3.0特性环境要求集成Demo用法基本用法后台下载文件校验更多 License
Tiercel 3.0
Tiercel 3.0 大幅提高了性能,拥有更完善的错误处理,提供了更多方便的 API。从 Tiercel 2.0 升级到 Tiercel 3.0 是很简单的,强烈推荐所有开发者都进行升级,具体请查看 Tiercel 3.0 迁移指南
特性
支持原生级别的后台下载 支持离线断点续传,App 无论 crash 还是被手动 Kill 都可以恢复下载 拥有精细的任务管理,每个下载任务都可以单独操作和管理 支持创建多个下载模块,每个模块互不影响 每个下载模块拥有单独的管理者,可以对总任务进行操作和管理 支持批量操作 内置了下载速度、剩余时间等常见的下载信息 支持自定义日志 支持下载任务排序 链式语法调用 支持控制下载任务的最大并发数 支持文件校验 线程安全
环境要求
iOS 10.0+Xcode 11.0+Swift 5.0+
安装
CocoaPods
Tiercel 支持 CocoaPods 集成,首先需要使用以下命令安装 CocoaPod:
$ gem install cocoapods
在Podfile文件中
source 'https://github.com/CocoaPods/Specs.git'platform :ios, '10.0'use_frameworks!target '
最后运行命令
$ pod install
Swift Package Manager
从 Xcode 11 开始,集成了 Swift Package Manager,使用起来非常方便。Tiercel 也支持通过 Swift Package Manager 集成。
在 Xcode 的菜单栏中选择 File > Swift Packages > Add Pacakage Dependency,然后在搜索栏输入
git@github.com:Danie1s/Tiercel.git,即可完成集成
手动集成
Tiercel 也支持手动集成,只需把本项目文件夹中的Tiercel文件夹拖进需要集成的项目即可
Demo
打开本项目文件夹中 Tiercel.xcodeproj ,可以直接运行 Demo
用法
基本用法
一行代码开启下载
// 创建下载任务并且开启下载,同时返回可选类型的DownloadTask实例,如果url无效,则返回nillet task = sessionManager.download("http://dldir1.qq.com/qqfile/QQforMac/QQ_V4.2.4.dmg")// 批量创建下载任务并且开启下载,返回有效url对应的任务数组,urls需要跟fileNames一一对应let tasks = sessionManager.multiDownload(URLStrings)
可以对任务设置状态回调
let task = sessionManager.download("http://dldir1.qq.com/qqfile/QQforMac/QQ_V4.2.4.dmg")task?.progress(onMainQueue: true) { (task) in let progress = task.progress.fractionCompleted print("下载中, 进度:\(progress)")}.success { (task) in print("下载完成")}.failure { (task) in print("下载失败")}
可以通过 URL 对下载任务进行操作,也可以直接操作下载任务
let URLString = "http://dldir1.qq.com/qqfile/QQforMac/QQ_V4.2.4.dmg"// 通过 URL 对下载任务进行操作sessionManager.start(URLString)sessionManager.suspend(URLString)sessionManager.cancel(URLString)sessionManager.remove(URLString, completely: false)// 直接对下载任务进行操作sessionManager.start(task)sessionManager.suspend(task)sessionManager.cancel(task)sessionManager.remove(task, completely: false)
后台下载
从 Tiercel 2.0 开始支持原生的后台下载,只要使用 Tiercel 开启了下载任务:
手动 Kill App,任务会暂停,重启 App 后可以恢复进度,继续下载只要不是手动 Kill App,任务都会一直在下载,例如: App 退回后台App 崩溃或者被系统关闭重启手机
如果想了解后台下载的细节和注意事项,可以查看:iOS 原生级别后台下载详解
文件校验
Tiercel 提供了文件校验功能,可以根据需要添加,校验结果在回调的task.validation里
let task = sessionManager.download("http://dldir1.qq.com/qqfile/QQforMac/QQ_V4.2.4.dmg")// 回调闭包可以选择是否在主线程上执行task?.validateFile(code: "9e2a3650530b563da297c9246acaad5c", type: .md5, onMainQueue: true) { (task) in if task.validation == .correct { // 文件正确 } else { // 文件错误 }}
更多
有关 Tiercel 3.0 的详细使用方法和升级迁移,请查看 Wiki
License
Tiercel is available under the MIT license. See the LICENSE file for more info.
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。