如何查看 Facebook iOS 上传的进度?
我正在使用 Facebook iOS SDK 并使用 Graph API 将视频上传到 Facebook。
上传工作非常正常,但我可以跟踪上传进度,以便在进度栏中反映进度。
I'm using the Facebook iOS SDK and using the Graph API to upload videos to Facebook.
The uploading is working perfectly fine, but can I keep track of the progress of the upload so I can reflect the progress in a progress bar.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是一个老问题,但您想要做的事情可以使用最新的 Facebook iOS SDK v3.9 来实现。 (2013 年 10 月 27 日)
本质上,FBRequestConnection 公开了一个属性 urlRequest (NSMutableURLRequest),您可以使用它来发送任何其他第三方网络框架甚至 Apple 提供的数据。
https://developers.facebook.com/docs/reference/ios/current/class/ FBRequestConnection#urlRequest
这是我如何使用 AFNetworking 1.x 获取进度回调的示例。
准备请求正文
创建 FBRequest
生成 FBRequestConnection(取消并提取 URLRequest)
使用 AFNetworking HTTPRequestOperation
设置进度回调
开始操作
This is an old question but what you're trying to do is possible with latest Facebook iOS SDK v3.9. (27 Oct 2013)
Essentially, FBRequestConnection exposes a property urlRequest (NSMutableURLRequest) that you can use to send out the data any other third party networking frameworks or even the ones Apple provided.
https://developers.facebook.com/docs/reference/ios/current/class/FBRequestConnection#urlRequest
Here's an example how I get progress callbacks using AFNetworking 1.x.
Prepare Request Body
Create FBRequest
Generate FBRequestConnection (Cancel & Extract URLRequest)
Use AFNetworking HTTPRequestOperation
Set Progress Callback
Start the operation
在查看 NSURLConnection 后,我终于找到了一种方法。这意味着在 FBRequest.h 和 FBRequest.m 文件中添加以下代码来创建新的委托。
在 FBRequest.m 文件的底部有 NSURLConnectionDelegate 的所有方法。在此添加此代码:
现在将其放入 FBRequest.h 类中以创建一个新的 FBRequest 委托:
这位于 FBRequest.h 文件的底部:
现在您所要做的就是在代码中的任何位置调用这个新委托,例如您可以使用任何其他 FBRequest 委托,它会给您一个从 0.0 到 1.0(0% 到 100%)的浮动值。
奇怪的是 Facebook API 没有这个(以及上传取消,我在这里找到了如何做如何使用 Facebook iOS SDK 取消正在进行的视频上传?),因为它并不那么棘手。
享受!
I've finally found a way of doing this after looking around in NSURLConnection. It means adding the following code inside of the FBRequest.h and FBRequest.m files to create a new delegate.
At the bottom of the FBRequest.m file there are all of the methods for NSURLConnectionDelegate. Add this code here:
Now put this in the FBRequest.h class to create a new FBRequest delegate:
This goes at the bottom of the FBRequest.h file after:
Now all you have to do is call this new delegate anywhere in your code like you would any other FBRequest delegate and it will give you a float from 0.0 to 1.0 (0% to 100%).
Strange that the Facebook API doesn't have this (along with upload cancel which I found out how to do here How to cancel a video upload in progress using the Facebook iOS SDK?) as it's not that tricky.
Enjoy!