Ich beende bereits die Implementierung der lokalen Benachrichtigung in meiner App.Lokale Benachrichtigung wird gepushed, aber App öffnet nicht
Wenn das Telefon im Standby-Modus ist (schwarzer Bildschirm, aber nicht geschlossen), sehe ich die lokale Benachrichtigung, ich könnte wischen und ich habe zwei Tasten (Accept & Ablehnen).
Das Problem: Wenn ich auf Akzeptieren klicke, kann ich auf dem Debug sehen, dass die Funktion mit Drucken ("babam!") Ausgelöst wird, aber die App bleibt geschlossen. Normalerweise sollte die App öffnen! Ich bleibe auf dem Bildschirm, wo ich zum Entsperren wischen und mein Passwort geben muss. Vielleicht, weil ich freischalten muss ... aber es scheint komisch.
Sie könnten überprüfen, wie ich meine lokale Benachrichtigung deklariere. Aber es scheint richtig mit
declineAction.authenticationRequired = false
So wird jede Hilfe geschätzt werden!
let acceptAction = UIMutableUserNotificationAction()
acceptAction.identifier = "Accept"
acceptAction.title = "Accept"
acceptAction.activationMode = UIUserNotificationActivationMode.Background
acceptAction.destructive = false
acceptAction.authenticationRequired = false
let declineAction = UIMutableUserNotificationAction()
declineAction.identifier = "Decline"
declineAction.title = "Decline"
declineAction.activationMode = UIUserNotificationActivationMode.Background
declineAction.destructive = false
declineAction.authenticationRequired = false
let category = UIMutableUserNotificationCategory()
category.identifier = "invite"
category.setActions([acceptAction, declineAction], forContext: UIUserNotificationActionContext.Default)
let categories = NSSet(array: [category])
let notificationSettings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: categories as? Set<UIUserNotificationCategory>)
UIApplication.sharedApplication().registerUserNotificationSettings(notificationSettings)
Gerade unter func, die ausgelöst wird, wenn ich wählen "accept"
func application(application: UIApplication, handleActionWithIdentifier identifier: String?, forLocalNotification notification: UILocalNotification, completionHandler:() -> Void) {
NSLog("Handle identifier : \(identifier)")
// Must be called when finished
if identifier == "Accept"{
print("babam!!!")
var storyboard = UIStoryboard(name: "Main", bundle: nil)
var destinationController = storyboard.instantiateViewControllerWithIdentifier("gosondage1") as? Sondage
var frontNavigationController = UINavigationController(rootViewController: destinationController!)
var rearViewController = storyboard.instantiateViewControllerWithIdentifier("MenuController") as? MenuController
var mainRevealController = SWRevealViewController()
mainRevealController.rearViewController = rearViewController
mainRevealController.frontViewController = frontNavigationController
self.window!.rootViewController = mainRevealController
self.window?.makeKeyAndVisible()
}
completionHandler()
}
Ja, danke, es funktioniert. In welchen Fällen müssen wir. Hintergrund statt Vordergrund verwenden? – user2971617
Ich weiß nicht, es hängt von Ihrer App Bedürfnisse ab. Zum Beispiel sendet E-Mail-App Push-Benachrichtigungen oder WhatsApp, wenn Sie eine neue Nachricht oder E-Mail erhalten und wenn Sie möchten, können Sie die App über die Schaltfläche lesen (.foreground) öffnen oder Sie können die Nachricht mit Abbrechen Schaltfläche (.background) ignorieren Deine Bedürfnisse. – emresancaktar