测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2016年12月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Nitin Sharma 维护。
VeloxDownloader 是一个易于使用、简洁、原生且功能强大的下载库,使用 Swift 3 开发。它简化了 urlsession 和下载任务的复杂实现,并提供了一个“一键”API,使您可以从互联网下载文件。
它是异步的、快速的、可维护的、高度可定制的,具有后台下载功能,并提供了内置 GUI 来显示和控制文件下载的进度。
它有以下几种模式
具有 UI
无 UI
安装 :
可以使用 CocoaPods 安装 VeloxDownloader。只需在 Podfile 中添加以下行,然后从您的终端运行 pod update
。
pod 'VeloxDownloader', '~> 1.6'
导入:
一旦 pod 成功安装,打开 xcode workspace 项目。在您的 viewcontroller 中,通过以下文件导入 VeloxDownloader。
import VeloxDownloader
Apple 的 App Transport Security 设置:
确保您已将信息.plist 中的 App Transport Security 设置中的“允许任意加载”允许。
使用 VeloxDownloader 和 Velox 下载 UI:
override func viewDidLoad() {
super.viewDidLoad()
let bundle = Bundle(for: VeloxDownloaderList.self)
let controller = VeloxDownloaderList(nibName: "VeloxDownloaderList", bundle: bundle)
self.addChildViewController(controller)
// scrollView is the outlet variable for your scroll view.
// it will be used to display velox downloading UI.
controller.view.frame = scrollView.frame
self.view.addSubview(controller.view)
controller.didMove(toParentViewController: self)
}
downloadFileWithVeloxDownloader
。你只需要传递你想要下载的文件的URL,其余的将由VeloxDownloader处理。IBAction func downloadClicked(_ sender: Any) {
let veloxDownloader = VeloxDownloadManager.sharedInstance
let urlString = "URL OF YOUR FILE"
let url = URL(string: urlString)
veloxDownloader.downloadFileWithVeloxDownloader(
withURL: url!,
name: url!.lastPathComponent,
directoryName: nil,
friendlyName: nil,
backgroundingMode: false)
}
backgroundingMode
参数传递为true。veloxDownloader.downloadFileWithVeloxDownloader(
withURL: url!,
name: url!.lastPathComponent,
directoryName: nil,
friendlyName: nil,
backgroundingMode: true)
使用没有Velox下载UI的VeloxDownloader:
@IBAction func downloadClicked(_ sender: Any) {
let veloxDownloader = VeloxDownloadManager.sharedInstance
let urlString = "URL OF YOUR FILE"
let url = URL(string: urlString)
let progressClosure : (CGFloat,VeloxDownloadInstance) -> (Void)
let remainingTimeClosure : (CGFloat) -> Void
let completionClosure : (Bool) -> Void
progressClosure = {(progress,downloadInstace) in
print("Progress of File : \(downloadInstace.filename) is \(Float(progress))")
}
remainingTimeClosure = {(timeRemaning) in
print("Remaining Time is : \(timeRemaning)")
}
completionClosure = {(status) in
print("is Download completed : \(status)")
}
veloxDownloader.downloadFile(
withURL: url!,
name: url!.lastPathComponent,
directoryName: nil,
friendlyName: nil,
progressClosure: progressClosure,
remainigtTimeClosure: remainingTimeClosure,
completionClosure: completionClosure,
backgroundingMode: false)
}
backgroundingMode
参数传递为true。在应用程序关闭之前,你必须手动从缓存目录检索文件。你可以使用以下代码扫描您的应用程序缓存目录
do{
let cachesDirectoryURLPath = URL(fileURLWithPath: NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true)[0])
let dir = try FileManager.default.contentsOfDirectory(atPath: cachesDirectoryURLPath.path)
for file in dir{
print("file is : \(file)")
}
}
catch let error as NSError{
print("error occured while trying to read cache dir \(error.localizedDescription)")
}
每次启动时,VeloxDownloader都会清除临时目录以避免任何文件命名冲突并保留系统空间。
只需克隆(或下载)此git项目,然后使用Xcode 8(最好是iOS 10模拟器或设备)运行它
git clone https://github.com/nitinsh99/VeloxDownloader.git