34 votes

iOS - Push notification d'alerte n'est pas affichée lorsque l'application est en cours d'exécution

J'ai intégré les notifications push dans mon application.Les utilisateurs recevront une notification push à se joindre à un groupe. Lorsque l'utilisateur clique sur "Rejoindre", j'ai manipuler quelque chose dans le code. Et donc, je suis la mise en œuvre de

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

Cela fonctionne bien lorsque l'application n'est pas en cours d'exécution.
Lorsque l'application est en cours d'exécution, je ne vois pas d'alerte. Comment rendre mon application afficher la notification d'alerte de sorte que l'utilisateur peut toujours décider d'adhérer ou pas?

70voto

Jakob W Points 2197

J'ai utilisé ce type de code dans mon application délégué pour imiter la notification d'alerte lorsque l'application est active. Vous devez mettre en œuvre appropriée UIAlertViewDelegate mode de protocole(s) pour gérer ce qui se passe quand l'utilisateur appuie sur un des boutons.

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {    
  UIApplicationState state = [application applicationState];
  if (state == UIApplicationStateActive) {
      NSString *cancelTitle = @"Close";
      NSString *showTitle = @"Show";
      NSString *message = [[userInfo valueForKey:@"aps"] valueForKey:@"alert"];
      UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Some title"
       message:message 
       delegate:self 
       cancelButtonTitle:cancelTitle 
       otherButtonTitles:showTitle, nil];
      [alertView show];
      [alertView release];
  } else {
    //Do stuff that you would do if the application was not active
  }
}

17voto

Aviel Gross Points 1110

Pour n'importe qui pourrait être intéressé, j'ai fini par créer une vue personnalisée qui ressemble le système de push bannière sur le dessus, mais ajoute un bouton de fermeture (petit bleu X) et une option pour appuyez sur le message pour l'action personnalisée. Il prend également en charge le cas de plus d'une notification d'arrivée avant que l'utilisateur a eu le temps de lire/rejeter les anciens (Avec pas de limite à combien peut s'accumulent...)

Lien vers GitHub: AGPushNote

L'utilisation est fondamentalement sur-liner:

[AGPushNoteView showWithNotificationMessage:@"John Doe sent you a message!"];

Et ça ressemble à ça sur iOS7 (iOS6 ont un iOS6 regarder et se sentir...)

Example

1voto

Kerni Points 8104

Vous devez afficher l'alerte vous-même si vous le souhaitez. C'est un comportement intentionnel, comme indiqué ici http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html ci-dessous le Listing 2-6

1voto

Stark Points 315

Pour montrer l'affichage des alertes lors de l'exécution de l'application, vous devez utiliser

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
}

et en accédant à l' userInfo variable

1voto

Ballu Points 1354

seulement, cette fonction sera appelée et vous devez explicitement montrer l'alerte sur ce cas, aucune notification ne viennent si l'application est en cours d'exécution dans lequel vous devez mettre en œuvre la notification.Mettre le point de rupture de l'il et de gérer l'appel de notification lors de l'appel de fonction et de montrer votre alerte personnalisées là.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X