2016-05-10 4 views
0

Ich bin neu in der IOS-Programmierung. Ich habe Probleme mit Benachrichtigungen in IOS Swift 2. Ich sende Benachrichtigungen vom Server, wenn App nicht getötet (Equivalent in Android onPause()) Ich kann Benachrichtigung behandeln und öffnen App funktioniert normal, gehen Sie zur Benachrichtigungs-URL. Wenn ich App (Equivalent in Android onDestroy()) Benachrichtigung Griff nicht arbeiten, App öffnen und schließen (Equivalent in Android onPause()) automatisch und App arbeitet auf Hintergrund und nicht gehen Benachrichtigung URL.So umgehen Sie den gekillten App-Status für die Benachrichtigung in IOS Swift 2

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) { 
    print(userInfo) 
    if let aps = userInfo["aps"] as? NSDictionary { 
     let link_url:String = (aps["link_url"] as? String)! 

     self.notifUrl = link_url 
     if(!self.appActive! && self.mainView != nil) { 
      self.mainView?.loadLink(link_url) 
     } 
    } 
} 

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) { 
    if let aps = userInfo["aps"] as? NSDictionary { 
     let link_url:String = (aps["link_url"] as? String)! 

     self.notifUrl = link_url 
     if(!self.appActive! && self.mainView != nil) { 
      self.mainView?.loadLink(link_url) 
     } 
    } 
} 

HINWEIS: Wenn ich App SIGKILL Fehler getötet.

Was ist das Problem? Wie kann ich es reparieren? enter image description here

Antwort

0

Das ist das erwartete Verhalten. Wenn eine App beendet wird, werden Pushs nicht zugestellt (es sei denn es handelt sich um einen voip-Push).

Wenn es ein Vordergrund Push ist, wird es an den Benutzer geliefert werden, wenn es ein Hintergrund Push es wird nicht zu etwas geliefert werden.

Wenn es ein Vordergrund Push ist und es an den Benutzer geliefert wird, dann, wenn und wenn der Benutzer auf die Benachrichtigung tippt, dann wird Ihre App gestartet werden.

+0

Alle Zeit (App getötet oder nicht) Benachrichtigung geliefert Gerät, aber wenn App getötet Ich kann App nicht von Benachrichtigungsaktion öffnen –

+0

Es war nicht klar, dass das Ihre eigentliche Frage war. In diesem Fall muss es ein Problem mit Ihrem Code sein. Wenn die App über eine Benachrichtigung aus einem abgeschlossenen Status gestartet wird, wird nicht didReceiveRemoteNotification aufgerufen, sondern didFinishLaunchingWithOptions: mit einem bestimmten Parameter "launchOptions". Überprüfen Sie die Dokumentation dafür und überprüfen Sie Ihren Code für didFinishLaunchingWithOptions, um festzustellen, ob ein Fehler vorliegt. – Gruntcakes

+0

Danke für die Richtung. ' func Anwendung (Anwendung: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: ANYOBJECT]?) -> Bool { lassen notificationTypes: UIUserNotificationType = [UIUserNotificationType.Alert, UIUserNotificationType.Badge, UIUserNotificationType.Sound] _ = UIUserNotificationSettings (forTypes: notificationTypes , Kategorien: null) let Einstellungen = UIUserNotificationSettings (forTypes: [.alert, .Badge, .Sound] Kategorien: null) application.registerUserNotificationSettings (Einstellungen) application.registerForRemoteNotifications() return true } ' –