对于NSURLSessionConfiguration,背景默认值的实际差异是多少



我在一个iOS应用程序上遇到问题,该应用程序使用NSURLSession登录到一个使用cookie记录成功身份验证的网站。

使用defaultSessionConfiguration()我没有问题。(当应用程序在后台并通过远程推送消息触发时,它甚至可以工作。)

当我将会话配置为使用backgroundSessionConfigurationWithIdentifier()时,我可以进行身份验证,但后续下载时不会出现相应的cookie。

当应用程序处于前台和后台时,backgroundSession的使用将失败。

因此,影响cookie的默认设置和背景设置之间一定存在差异。这两种配置都记录为使用共享cookie存储。

有人对这种行为有解释和/或解决办法吗??

这有几个原因。其中之一是因为你没有在.plist中启用后台获取设置。另一个原因是需要在整个应用程序中保持带有标识符的会话,这也是你的cookie不会在后续下载中显示的原因之一,因为有些东西正在切换。

defaultSessionConfiguration可以按照您的预期工作,而且您已经习惯了,但backgroundSessionConfiguration完全不同,您需要设置一些东西。

我建议你通读这篇文章,了解它的不同之处以及你可以做些什么:https://medium.com/swift-programming/learn-nsurlsession-using-swift-part-2-background-download-863426842e21#.vejklegsp

我希望这是有帮助的!

最新更新