9
votes

Données de notification PUSH N'EST PAS lorsque l'application est lancée directement en cliquant sur l'icône de l'application.

J'ai un scénario dans lequel l'application obtiendra une notification push et doit montrer que les messages dans l'écran d'accueil de mon application, car j'ai sauvegardé le tableau de messages dans les paramètres par défaut des utilisateurs de mon délégué de mon application et que tout fonctionne bien, mais dans des conditions suivantes ça ne fonctionne pas

  1. Si l'application est en état tué et une notification est arrivée et que l'utilisateur déclenche l'application via l'icône de l'application (pas à partir de la notification push)

  2. Si l'application est en arrière-plan et que la notification est venue et que l'utilisateur entre dans l'application via l'icône de l'application (pas du message Push) dans ce cas également

    Puis j'ai recherché des solutions et connu des notifications push silencieuses (pour le mode arrière-plan) et rien d'autre afin que je dois savoir comment gérer tous les scénarios par des notifications push et mon appdeletete est < Pré> xxx

    Merci d'avance


6 commentaires

Si votre application est terminée par l'utilisateur, il n'ya aucun moyen de découvrir les notifications push fournies si l'utilisateur lance votre application à partir de l'icône de l'application.


Je pense que c'est donc mieux que vous créez des services Web qui vous donnent une réponse de tous les messages envoyés jusqu'à présent.bcz Le premier scénario ne peut pas être traité, la seconde peut être traitée par la notification silencieuse.


Merci pour la réponse rapide :) Si la notification est venue avant que l'utilisateur a lancé l'application pour la première fois, que va-t-il se passer?


Okei est une chance de rejet d'Appstore dans le cas de la notification silencieuse


Vous ne pouvez pas recevoir des notifications à distance avant l'utilisateur a lancé votre application pour la première fois parce que vous n'êtes pas encore inscrit pour les notifications à distance et votre serveur ne possède pas l'identificateur de notification à distance afin d'envoyer une notification au dispositif


Oui, vous avez raison, désolé je parle de mon cas de test où je désinstalle la désinstallation de l'application après avoir enregistré l'enregistrement de l'appareil une fois, je reçois des notifications si j'installez l'application dans le même périphérique sans le lancer une fois.


4 Réponses :


2
votes

Dans le scénario 1. NSDictionary * remoteNotif = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey]; code> ici remoteNotif code> retour nil code> que vous entrez dans l'application par déclenchement icône de l'application.

Dans le scénario 2. Vous pouvez obtenir des informations de notification push par la méthode suivante p>

-(void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
      if (userInfo) {

          [self handlePushMessage:userInfo];
      }
}


1 commentaires

merci pour la réponse, mais ce n'est pas la réponse que je cherche :(



2
votes

Ceci est un problème commun: si l'utilisateur n'ouvre pas votre application au moyen de la notification affichée, il n'y a aucun moyen * d'obtenir les informations correspondantes.

* Une solution utilisée par de nombreuses applications est de vérifier avec un serveur distant pour les notifications non lus (par exemple pour vérifier un champ de lecture à jour unset).


1 commentaires

Merci d'avoir répondu



2
votes
  1. si l'application est en état tué et une notification est venu et l'utilisateur triggeres l'application par l'icône de l'application (pas de notification push)

    • Si l'application est dans un état tué alors la charge utile de notification push ne peut être remis à l'application lorsque l'utilisateur tape la notification push lui-même. Si l'utilisateur lance l'application d'icône de l'application, puis la charge utile de notification ne sera pas transmis à l'application
    • si l'application est en arrière-plan et la notification est venu et l'utilisateur entre à l'application par icône de l'application (pas de message push) dans ce cas aussi

      • si vous ciblez et iOS 7 vers le haut puis vous devez activer le mode d'arrière-plan pour les notifications à distance. S'il vous plaît vérifier lien ci-dessous afin d'obtenir la charge utile de notification, même lorsque l'application est en arrière-plan

        ​​didReceiveRemoteNotification ne fonctionne pas en arrière-plan

        L'application ci-dessus mentionnée méthode déléguée est appelée lorsque l'application est au premier plan, arrière-plan et état suspendu.

        Il n'y a pas moyen d'obtenir la charge utile de notification lorsque l'application est tué et lorsque l'icône de l'application est directement cliqué au lieu de notification push dans le centre de notification.


0 commentaires

0
votes

Activer « Notifications à distance » sous les modes d'arrière-plan dans les capacités dans les milieux cibles. Cela récupérer les données de notification même lorsque l'application est en arrière-plan. Aussi, assurez-vous de mettre en œuvre:.

-(void)application:(UIApplication *)application 
didReceiveRemoteNotification:(NSDictionary *)userInfo 
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler;


0 commentaires