Мне нужно, чтобы мое приложение получало данные и показывало пользователю предупреждение в зависимости от ответа. Я пытаюсь создать функцию и затем вызвать ее для класса appDelegate ...
функция:
func triggerPushMessages(){
Timer.scheduledTimer(withTimeInterval: 60, repeats: true) { (time) in
// I want to perform a request here to show the alert to user
let content = UNMutableNotificationContent()
content.title = "testNotifications on background state"
content.body = "date of notification: \(Date().timeIntervalSinceNow)"
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)
let notificationRequest = UNNotificationRequest(identifier: "test", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(notificationRequest, withCompletionHandler: { (err) in
if let error = err {print(error);return}
})
}
}
Я создал эту функцию, чтобы проверить, появятся ли уведомления после того, как я установил таймер, но происходит то, что, когда я устанавливаю функцию timer.schedule, pushNotification не работает, если я удаляю таймер pushNotification работает ...
дело в том, что мне нужно запросить данные у Api, сначала дождаться ответа, а затем показать push-уведомление, чтобы предупредить пользователя ...
как я могу это сделать?
Я вызываю этот метод на:
func applicationDidEnterBackground(_ application: UIApplication) {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
self.triggerPushMessages()
}
Возможно ли это вообще?как такие приложения, как WhatsApp, Telegram, Tinder, могут обрабатывать / извлекать данные о фоновом состоянии, а затем показывать уведомления пользователю?
Заранее спасибо за ответ.
Я хотел бы добавитьчто мой 60-секундный запрос только для целей тестирования, я буду выполнять его один раз в час ...