Lokale Benachrichtigungen, während die App im hintergrund ausgeführt wird, Swift 2.0

Ich bin versucht, senden Sie dem Benutzer eine 'Push Notification' - Stil Alarm, wenn der Benutzer minimiert sich die app, indem Sie auf die iPhone Home-Taste oder durch sperren des Telefons).

Meine app kontinuierlich analysiert eine XML-Datei (alle 10 Sekunden), und ich will die app weiterhin ausgeführt, so dass es sendet der Benutzer eine Lokale Benachrichtigung, sobald eine bestimmte Bedingung erfüllt worden ist in meinem Programm, auch nachdem der Benutzer minimiert die app gesperrt oder Ihrem Handy.

Habe ich hüpfte herum von tutorials und jeder scheint zu 'planen' eine Benachrichtigung, aber das ist nicht zur Arbeit zu gehen für mich, weil meine Benachrichtigung ist nicht Zeit -, sondern auf der Grundlage von Bedingungen erfüllt werden.

Was ich bisher getan habe:

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)
}

Alert großen Werke, während die app geöffnet ist, aber die Meldung nie angezeigt, wenn ich minimieren die app auf meinem Handy. Ich nehme an, die app nicht läuft, während es im hintergrund oder ich don ' T verstehen dieses Konzept gut. Jede Hilfe wird sehr geschätzt.

Was ist das delta? Ich denke mal, deine Funktion nicht aufgerufen wird, im hintergrund und damit Ihre Benachrichtigung dint bekommen geplant
delta ist innen "someFunction" ich wollte nur nicht den gesamten code (versucht zu halten, relevanten teilen). Ich habe bearbeitet den code, so dass er ein bisschen mehr lesbar. Die Sachen, die innerhalb der 'if' - Anweisung ausgeführt wird, ich habe geprüft, die mit 'print()' Anweisungen.
Schreiben Sie print-Anweisung in pushNotification-Funktion und sehen, ob es wird als in bg.
Ok, pushNotification() wird immer aufgerufen und funktioniert, wenn ich minimieren meine app im simulator, aber wenn ich laden Sie die app auf mein Handy und minimieren der app, habe ich nicht bekommen, die Warnungen, wie ich in den simulator.
Hast du die Erlaubnis popup?

InformationsquelleAutor Ivan | 2016-01-26

Schreibe einen Kommentar