Отправка локальных уведомлений, пока приложение работает в фоновом режиме Swift 2.0
Я пытаюсь отправить пользователю предупреждение «Стиль push-уведомлений», когда пользователь сворачивает приложение (нажав кнопку «Домой» на iPhone или заблокировав телефон).
Мое приложение непрерывно анализирует XML-файл (каждые 10 секунд), и я хочу, чтобы приложение продолжало работать, чтобы оно отправляло пользователю локальное уведомление, как только в моей программе было выполнено какое-либо условие, даже после того, как пользователь свернул приложение или заблокировал его Телефон.
Я отскочил от учебников, и все, кажется, «планируют» Уведомление, но это не сработает для меня, потому что мое Уведомление не основано на времени, скорее оно основано на соблюдении условий.
Что я сделал до сих пор:
AppDelegate.swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil))
return true
}
MapViewController.swift
// Some function
func someFunction(delta: Int) {
if delta < 100 {
// Send alert to user if app is open
let alertView = UIAlertController(title: "This is an Alert!", message: "", preferredStyle: UIAlertControllerStyle.Alert)
alertView.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(alertView, animated: true, completion: nil)
// Send user a local notification if they have the app running in the bg
pushTimer = NSTimer.scheduledTimerWithTimeInterval(0.5, target: self, selector: Selector("pushNotification"), userInfo: nil, repeats: false)
}
}
// Send user a local notification if they have the app running in the bg
func pushNotification() {
let notification = UILocalNotification()
notification.alertAction = "Go back to App"
notification.alertBody = "This is a Notification!"
notification.fireDate = NSDate(timeIntervalSinceNow: 1)
UIApplication.sharedApplication().scheduleLocalNotification(notification)
}
Оповещение прекрасно работает, когда приложение открыто, но уведомление никогда не появляется, когда я сверну приложение на своем телефоне. Я предполагаю, что приложение не работает, пока оно находится в фоновом режиме, или я не очень хорошо понимаю эту концепцию. Любая помощь очень ценится.