Alamofire在后台下载/上传多个文件

时间:2016-03-29 16:39:27

标签: ios swift alamofire

我的应用需要具有同步功能。即类似谷歌照片的功能。用户添加了一些图像,标签,音频和一堆其他文件。

点击同步按钮&文件将被上传/下载。

在android中,我使用了一项有助于实现此功能的服务。

如何使用 Alamofire网络库实现此功能。

这就是我的尝试。

class BackgroundDownload{
let manager = Alamofire.Manager(configuration: NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier("com.blabla.download.123"))

init(){
    for _ in 1...10{
        manager.request(NSURLRequest(URL: NSURL(string: "https://static.pexels.com/photos/479/landscape-nature-sunset-trees.jpg")!)).response { (request, response, data, let error) in
            print(response)
            print(error)

        }
    }
}

}

这是一个示例代码。我从ViewController调用它。 我面临的问题。

1.我应该在哪里调用我的文件下载代码,以便继续在后台运行

  1. 如果用户关闭应用程序或由于某种原因应用程序重新启动,如何继续下载。

1 个答案:

答案 0 :(得分:0)

迅速达到4以上:  尝试使用Alamofire

class Networking {
    static let sharedInstance = Networking()
    public var sessionManager: Alamofire.SessionManager // most of your web service clients will call through sessionManager
    public var backgroundSessionManager: Alamofire.SessionManager // your web services you intend to keep running when the system backgrounds your app will use this
    private init() {
        self.sessionManager = Alamofire.SessionManager(configuration: URLSessionConfiguration.default)
        self.backgroundSessionManager = Alamofire.SessionManager(configuration: URLSessionConfiguration.background(withIdentifier: "com.youApp.identifier.backgroundtransfer"))
    }
}

使用: 导入Alamofire

let NetworkManager = Networking.sharedInstance.backgroundSessionManager

  NetworkManager.upload(multipartFormData: { (multipartFormData) in

       ****
       //do something when the request has finished
       ****

  }