2016-05-17 3 views
0

Ich sende Push-Benachrichtigungen vom Server und wenn die App im Hintergrund läuft, kommt die Benachrichtigung und das Antippen ruft didReceiveRemoteNotification() auf.Warum bekomme ich Apple Push Notification mit launchOption-Wörterbuch nil?

Aber wenn ich meine app (swiping bis die App nach zweimaliges Drücken Home-Taste töten, Benachrichtigung kommt aber direkt die Benachrichtigung tippen nur der Bildschirm nach Hause app, die ich bereits in didFinishLaunchingWithOptions codiert:.. LaunchOptions() wie unten

if (launchOptions != nil) 
    { 
     NSDictionary* dictionary = launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey]; 
     if (dictionary != nil) 
     { 

      NSLog(@"Launched from push notification: %@", dictionary); 

      NSString *strVendId=[dictionary valueForKeyPath:@"payload.vendor_id"]; 

      UIStoryboard *mainstoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
      UINavigationController *navController = (UINavigationController *)self.window.rootViewController; 

      VenderDetailController *vDetail=[mainstoryboard instantiateViewControllerWithIdentifier:@"venDetail"]; 
      vDetail.strVendorId=strVendId; 
      [navController pushViewController:vDetail animated:YES]; 
     } 
    } 

Es gibt keine Art, wie ich das debuggen kann als App getötet wird. Vielleicht nil Wörterbuch ich kann ich nicht sagen. ich habe sogar versucht launchOption nil zu entfernen Zustand, immer noch keine Hilfe.

ich objektiv C bin mit und dieses problem macht mich verrückt

+0

können Sie die launchOptions protokollieren und die Werte angeben – Shubhank

+0

Wie kann ich erreichen, dass, wenn ich die App kille, xcode Projekt stoppt. Also, wie kann ich in das Gerät einloggen? –

Antwort

2

allererst die Protokolle in Geräteprotokolle überprüfen, um zu bestätigen, ob das Wörterbuch Null ist oder nicht. Zum Überprüfen der Protokolle beim Beenden der App. Gehen Sie zu Fenster -> Geräte, wählen Sie Ihr Gerät aus und tippen Sie dann auf das Pfeilsymbol unten links, wie in der Abbildung unten gezeigt. Sie können alle Protokolle, um zu sehen, auch wenn Sie die App nicht von Xcode ausgeführt werden: enter image description here enter image description here

Melden Sie das Wörterbuch Sie bekommen, wird es bei der Fehlersuche helfen.

1

Try this ...

NSDictionary *localNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; 
1

Sie können die Lösung von Chandan005 verwenden, um die Debugging-Konsole anzuzeigen, oder Sie können den Inhalt dictionary mithilfe von UIAlertView innerhalb von didFinishLaunchingWithOptions:launchOptions anzeigen, um zu überprüfen, ob Sie die richtige Remote-Benachrichtigungsnutzlast erhalten oder nicht.

Verwandte Themen