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
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) p> li>
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 p> li> ol>
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 p> < Pré> xxx pré>
Merci d'avance p> p>
4 Réponses :
Dans le scénario 1. Dans le scénario 2. Vous pouvez obtenir des informations de notification push par la méthode suivante p> 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.
-(void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
if (userInfo) {
[self handlePushMessage:userInfo];
}
}
merci pour la réponse, mais ce n'est pas la réponse que je cherche :(
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. p>
* 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). P>
Merci d'avoir répondu
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) p>
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 p>
didReceiveRemoteNotification ne fonctionne pas en arrière-plan p>
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. P> li> ol>
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. P>
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;
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.