【问题标题】:Alamofire Background Upload doesn't print Progress while app is in Background当应用程序处于后台时,Alamofire 后台上传不打印进度
【发布时间】:2018-11-19 04:22:38
【问题描述】:

我正在使用AlamofirePDF 文件上传到服务器。我创建了backgroundSessionManager 以确保应用程序在后台时上传文件。当我从AppDelegate 方法handleEventsForBackgroundURLSession 调用backgroundCompletionHandler 时,代码完美运行。

进度是我正在显示进度,当应用程序进入后台时,进度卡住了,.uploadProgress 完成也没有调用。因此,当用户进入后台并在一段时间后返回时,进度不会增加。

共享实例:

class Networking {
    static let sharedInstance = Networking()
    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.backgroundSessionManager = Alamofire.SessionManager(configuration: URLSessionConfiguration.background(withIdentifier: "com.dw.myapp"))

        var backgroundCompletionHandler: (() -> Void)? {
            get {
                return backgroundSessionManager.backgroundCompletionHandler
            }
            set {
                backgroundSessionManager.backgroundCompletionHandler = newValue
            }
        }
    }
}

上传文件代码

Networking.sharedInstance.backgroundSessionManager.upload(multipartFormData: { (multipartData) in
 }, usingThreshold: UInt64.init(), to: "\(url)", method: .post, headers: headers) { (result) in
            switch result {
            case .success(let upload, _, _):
                upload.uploadProgress(closure: { (progress) in
                //Does not call while app is in background
                        Helper.dispatchMain {
                            print(progress)
                            print("Upload Time ", Date())
                        }
                    })
                    upload.responseJSON { response in
                        print("Response Time ", Date())
                        print("Response Time ", Date())
                    }
                case .failure(let error):
                    completion!(["message" : error],false)
                }
            }

我搜索了 SO 和 github 页面,但没有找到解决方案。如果我犯了任何错误,任何人都可以指导吗?

【问题讨论】:

标签: swift file-upload background alamofire


【解决方案1】:

尝试在应用的后台模式功能中启用外部附件通信功能。

【讨论】:

    【解决方案2】:

    希望这会奏效,如果您仍然面临它,请告诉我

    【讨论】:

    • 不,您提供的解决方案是必须用于后台下载,所以我已经启用它。谢谢。
    猜你喜欢
    • 2017-11-06
    • 2019-06-17
    • 1970-01-01
    • 2014-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多