Я работаю над приложением для аварийных сигналов, мне нужно запланировать будильник в определенное время, я использую scheduleLocalNotification
для планирования аварийных сигналов, и он работает нормально как я хочу. BUT Перед запуском будильника мне нужно выполнить запрос на сервер API. В этом запросе я хочу проверить некоторые параметры, возвращаемые с сервера API, если это удовлетворяет некоторому условию.Как запустить задачу в режиме быстрой установки в определенное время в фоновом режиме, либо приложение включено или выключено
Если какой-либо один есть метод, который работать на конкретную дату - время быстрой Пожалуйста, помогите мне для этого
func addAlarm (newAlarm: Alarm) {
// Create persistent dictionary of data
var alarmDictionary = NSUserDefaults.standardUserDefaults().dictionaryForKey(ALARMS_KEY) ?? Dictionary()
// Copy alarm object into persistent data
alarmDictionary[newAlarm.UUID] = newAlarm.toDictionary()
// Save or overwrite data
NSUserDefaults.standardUserDefaults().setObject(alarmDictionary, forKey: ALARMS_KEY)
scheduleNotification(newAlarm, category: "ALARM_CATEGORY")
scheduleNotification(newAlarm, category: "FOLLOWUP_CATEGORY")
}
/* NOTIFICATION FUNCTIONS */
func scheduleNotification (alarm: Alarm, category: String) {
let notification = UILocalNotification()
notification.category = category
notification.repeatInterval = NSCalendarUnit.Day
switch category {
case "ALARM_CATEGORY":
notification.userInfo = ["UUID": alarm.UUID]
notification.alertBody = "Time to wake up!"
notification.fireDate = alarm.wakeup
notification.timeZone = NSTimeZone.localTimeZone()
notification.soundName = "loud_alarm.caf"
break
case "FOLLOWUP_CATEGORY":
notification.userInfo = ["UUID": alarm.followupID]
notification.alertBody = "Did you arrive yet?"
notification.fireDate = alarm.arrival
notification.timeZone = NSTimeZone.localTimeZone()
notification.soundName = UILocalNotificationDefaultSoundName
break
default:
print("ERROR SCHEDULING NOTIFICATION")
return
}
print("Notification=\(notification)")
// For debugging purposes
if alarm.isActive {
UIApplication.sharedApplication().scheduleLocalNotification(notification)
}
}
К сожалению, локальные уведомления не могут быть тихими, но только удаленные уведомления. Мой совет для вас заключается в том, чтобы реализовать средство уведомления на вашем сервере, чтобы пользователь сообщал серверу, когда он хочет, чтобы их сигнал тревоги был, и сервер запускает метод в то время, выполняет проверки, которые вы хотите, если они передают отправляет удаленный уведомление устройства, вызывающего тревогу. –
@JacobKing Спасибо за ваш совет, позвольте мне подождать некоторое время, На самом деле я хочу функцию, которая запускается в фоновом режиме в заданный период времени. если у кого-то есть идея, я подожду какое-то время. если я не получил какой-либо способный ответ, тогда я его реализую на сервере. –