Получение ответа от в фоновом режиме URLSession Post - PullRequest
0 голосов
/ 30 мая 2019

Я выполняю пост, который может занять несколько секунд, чтобы вернуться и что включить фоновый режим. Я пытаюсь выяснить, если приложение уходит в фоновый режим, ожидая возвращения сообщения, могу ли я получить ответ как-нибудь?

let bgSessionConfig = URLSessionConfiguration.background(withIdentifier: identifier)
bgSessionConfig.sharedContainerIdentifier = "myid"
backgroundSessionManager = SessionManager(configuration: bgSessionConfig)

Так в принципе будет ли когда-нибудь вызываться завершение ниже, если в фоновом режиме?

sessionManager.request(url, method: .post, parameters: dataParameters, encoding: parameterEncoding, headers: finalHeaders)
            .validate()
            .responseJSON(queue: self.dispatchQueue, completionHandler: {response in

func application(_ application: UIApplication, handleEventsForBackgroundURLSession identifier: String, completionHandler: @escaping () -> Void) { }

1 Ответ

0 голосов
/ 30 мая 2019

Обработчик завершения в handleEventsForBackgroundURLSession - это не то, что "вызывается".Это то, что вы должны вызвать, когда придет urlSessionDidFinishEvents.То, что "называется" - это само по себе handleEvents.Ваша задача здесь - указать фоновый сеанс URL (возможно, создавая его, если вы только что запустили) и немедленно сделать его делегатом. Это , как вы будете связываться через обычные сообщения делегатов.

Вы бы получили определенные сообщения делегатов, если бы это не было фоновым сеансом;хорошо, теперь вы будете получать те сообщения делегатов, когда является фоновым сеансом.

...