Я написал код для отправки URLRequest в applicationWillTerminate, но узнал, что это неправильно.Есть ли другой способ уведомить сервер о том, что приложение было прекращено?Приведенный ниже код получает и возвращает данные, возвращенные с сервера, но, поскольку он только уведомляет сервер о завершении приложения, в принципе это необязательно.
func applicationWillTerminate(_ application: UIApplication) {
appExitRequest()
}
func appExitRequest() {
let settings = UserDefaults.standard
let id = settings.string(forKey: myId)
guard let myId = id?.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {
return
}
guard let req_url = URL(string: "http://localhost/test.php/terminate?myId=\(myId)") else {
return
}
print(req_url)
let req = URLRequest(url: req_url)
let session = URLSession(configuration: .default, delegate: nil, delegateQueue: OperationQueue.main)
let task = session.dataTask(with: req, completionHandler: {
(data, response, error) in
session.finishTasksAndInvalidate()
do {
print("OK", data ?? "Empty")
} catch {
print("Failure", error)
}
})
task.resume()
}