问题标签 [nsurlsessiondownloadtask]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
16441 浏览

ios - NSURLSessionTask never calls back after timeout when using background configuration

I am using NSURLSessionDownloadTask with background sessions to achieve all my REST requests. This way I can use the same code without have to think about my application being in background or in foreground.

My back-end has been dead for a while, and I have taken that opportunity to test how does NSURLSession behave with timeouts.

To my utter surprise, none of my NSURLSessionTaskDelegate callbacks ever gets called. Whatever timeout I set on the NSURLRequest or on the NSURLSessionConfiguration, I never get any callback from iOS telling me that the request did finish with timeout.

That is, when I start a NSURLSessionDownloadTask on a background session. Same behavior happens the application is in background or foreground.

Sample code:

However, when I use the default session, then I do get an error callback after 30seconds (the timeout that I set at request level).

Sample code:

I cannot seem to find in the documentation anything that suggests that the timeout should behave differently when using background sessions.

Has anyone bumped into that issue as well? Is that a bug or a feature?

I am considering creating a bug report, but I usually get feedback much faster on SO (a few minutes) than on the bug reporter (six months).

Regards,

0 投票
1 回答
1577 浏览

ios - NSURLSession 后台任务:避免重复

我是 NSURLSession 和特别是后台下载任务的新手。有没有办法查询 NSURLSession 以返回后台任务列表?似乎可以对后台下载任务提出重复请求。如果我在前一个仍在进行中时发出相同的 url 下载请求,我不会收到任何错误。

处理这种情况的最佳方法是什么?我可以维护我当前正在从中下载的 url 列表,但如果应用程序重新启动,我会丢失此引用。我可以再次将这些信息存储在持久存储中。但是没有选项来查询 NSURLSession 似乎很不方便。

0 投票
5 回答
3115 浏览

ios - 处理 NSURLSessionDownloadTask 失败

最初我认为如果NSURLSessionDownloadTask成功完成 URLSession:downloadTask:didFinishDownloadingToURL:方法将被调用,如果由于某种原因失败 - URLSession:task:didCompleteWithError:。它在模拟器上按预期工作(一个下载任务只调用此方法中的一个),但在设备上情况并非如此:如果失败,这两个方法都会被调用,URLSession:downloadTask:didFinishDownloadingToURL:第一个是第一个。(这两种方法都在参数中传递相同的任务)

有什么我想念的吗?

0 投票
2 回答
1873 浏览

xcode - NSURLSessionDownloadTask 中的错误

即使应用程序处于后台,我也在尝试更新用户在后台的位置,因此我触发了调用以下 php 脚本的位置更新:

但我收到错误:后台下载的 URL 方案无效:(null)。有效的方案是 http 或 http,并且在前台或后台都没有发送 url。我在网上搜索我发现没有解决这个问题的命中。我还将问题提交给了 Apple 支持。

0 投票
4 回答
27773 浏览

ios - 使用 NSURLSessionDataTask 显示文件下载进度

我想显示特定文件的文件下载进度(收到多少字节)。它适用于 NSURLSessionDownloadTask 。我的问题是我想用 NSURLSessionDataTask 实现同样的效果。

这是将文件接收到 NSData 并写入文件夹的代码:

写入或完成数据任务后(收到文件后)我正在获取文件大小:

NSLog(@"SIZE : %@",[NSByteCountFormatter stringFromByteCount:data.length countStyle:NSByteCountFormatterCountStyleFile]);

但我想显示它的当前字节接收状态,这可能与 NSURLSessionDataTask 吗?

0 投票
2 回答
1127 浏览

ios - 多个文件下载有问题

目前我正在实现一个文件下载应用程序。在我的应用服务器中有大约 2500 个资源文件,我需要将这些文件从服务器下载到我的文档目录。

我的代码:

问题 :

有时它会下载第一个文件并停在那里,下次它不会下载任何东西。我到现在都找不到问题,因为这个问题我浪费了将近一天。请帮我找出问题所在。提前致谢。

0 投票
1 回答
783 浏览

ios - 使用 NSURLSession iOS 在应用处于空闲状态时下载图像

我需要在应用程序处于空闲状态时将一些大图像下载到应用程序。我计划使用 NSURLSession.Tutorials 完成它,并且可用的示例代码工作并确认可以进行后台下载。这是满足我要求的最佳方法?此外,如果在下载未完成并且只获得几个字节时从后台删除应用程序会发生什么情况。我可以从停止的地方恢复下载吗?我可以再次在 iOS6 中使用它吗?这些是我正在使用的委托方法。

0 投票
3 回答
1712 浏览

ios - 关闭应用时后台传输下载任务失败

我创建了后台 nsurlsession 来执行下载任务。当应用程序处于后台时,它运行良好。但是,当我关闭应用程序(双击“主页”按钮并向上滑动)时,下载任务似乎被取消并失败,当我重新启动应用程序时,它让我再次从头开始下载。根据 Apple 文件,即使应用程序不再运行,后台传输也能正常工作。我做错什么了吗?

0 投票
1 回答
1544 浏览

ios - NSURLSessionDownloadTask cancelByProducingResumeData 返回 null

我使用 NSURLSessionDownloadTask 从服务器下载文件,它在后台会话中运行。我想保存恢复数据以在应用程序终止时恢复下载。但是,cancelByProducingResumeData 的调用总是返回 null。我无法弄清楚这个问题,因为我曾经成功地完成了一个可恢复下载任务的示例。有人遇到同样的问题吗?

0 投票
1 回答
179 浏览

ios - NSURLSessionDownloadTask 的未实现协议方法警告静音

我试图弄清楚如何抑制我没有使用目的的委托方法的编译器警告。我知道我可以有一个空的方法体,但我仍然想找到一种不这样做的方法,所以我的源代码中的代码更少。

我在这里看到了这个答案:动态转发:抑制不完整的实施警告

但这似乎使问题过于复杂。有没有办法在我的 ViewController.h 的头文件中只添加一个衬里,所以我从来没有看到这个警告?

我感谢提供的任何帮助。

作为记录,我想对此方法的警告静音: