如何在ios应用程序中显示Web服务调用的进度条

How to show progress bar for web service call in ios app

提问人:SURESH SANKE 提问时间:3/19/2019 最后编辑:Mike HaySURESH SANKE 更新时间:3/19/2019 访问量:685

问:

我想在 ios 应用程序中显示其中一个 Web API 调用的进度条。在Web服务完成之前,不是只向用户显示活动指示器,而是向他显示进度状态是用户友好的。我看过很多示例,显示了带有用户定义时间的进度条,但这些示例与 WEB API 调用持续时间无关。那么谁能指导我完成上述任务?

iOS Objective-C iOS7 进度条

评论

2赞 Mike Hay 3/19/2019
如果 Web API 调用是上传或下载,则可以使用 URLSessionUploadTask 或 URLSessionDownloadTask 获取进度指示,并实现其委托方法。否则,Web API 调用应该非常快地完成,并且没有办法进行准确的进度指示。
1赞 El Tomato 3/19/2019
swift 中从 dataTaskWithURL 获取进度的可能重复

答:

2赞 Sukh 3/19/2019 #1
    // like iam using SVProgress for uplaod an image
// for showing Progress iam getting Progress.fractionCompleted from uploadProgress
eg:-

     Alamofire.upload(multipartFormData: { (multipartFormData) in
            multipartFormData.append(data!, withName: "media", fileName: "media.jpeg", mimeType: "media/jpeg")
            for (key, value) in parameters! {
              multipartFormData.append((value as AnyObject).data(using: String.Encoding.utf8.rawValue)!, withName: key)
            }
          }, to:baseUrl,headers:parameters)
          { (result) in
            switch result {
            case .success(let upload, _, _):

              upload.uploadProgress(closure: { (Progress) in
                print("Upload Progress: \(Progress.fractionCompleted)")
                SVProgressHUD.showProgress(Float(Progress.fractionCompleted))
              })

              upload.responseJSON { response in
                //self.delegate?.showSuccessAlert()
                print(response.request)  // original URL request
                print(response.response) // URL response
                print(response.data)     // server data
                print(response.result)   // result of response serialization
                //                        self.showSuccesAlert()
                //self.removeImage("frame", fileExtension: "txt")
            SVProgressHUD.dismiss()

// Hope its works for you..

评论

1赞 rmaddy 3/19/2019
这个问题被标记为 Objective-C,而不是 Swift。请用正确的语言发布问题。