Для NSURLSessionConfiguration, какова фактическая разница фона по умолчанию?
У меня проблемы с приложением iOS, использующим NSURLSession для входа на веб-сайт, который использует куки для записи успешной аутентификации.
Использование defaultSessionConfiguration() у меня не проблема. (Он даже работает, когда приложение работает в фоновом режиме и запускается с помощью сообщения Remote Push.)
Когда я настраиваю сеанс для использования backgroundSessionConfigurationWithIdentifier(), тогда я могу аутентифицироваться, но соответствующие файлы cookie отсутствуют для последующих загрузок.
Использование backgroundSession не удается, когда приложение находится на переднем плане и в фоновом режиме.
Так что должна быть разница между настройками по умолчанию и фоном, которые влияют на куки. Обе конфигурации задокументированы как использующие общее хранилище cookie.
У кого-нибудь есть объяснение и / или исправление для такого поведения?
1 ответ
Есть несколько причин для этого. Одним из них является то, что вы не включили настройку фоновой выборки в своем.plist. Другой - необходимость сохранять сеанс с идентификаторами в приложении, что является одной из причин, по которой ваши куки не отображаются в последующих загрузках, потому что что-то переключается.
defaultSessionConfiguration
работает так, как вы ожидаете, и вы привыкли, но backgroundSessionConfiguration
совсем другое, и вам нужно будет настроить несколько вещей.
Я бы рекомендовал прочитать это, чтобы получить некоторую информацию о том, как оно отличается и что вы можете сделать: https://medium.com/swift-programming/learn-nsurlsession-using-swift-part-2-background-download-863426842e21
Я надеюсь, что это полезно!