Push et application inactive
Bonjour à tous,
Je viens vers vous avec des questions concernant le push.
Si j'ai bien compris lors de la réception d'une notification plusieurs cas peuvent arriver :
- soit l'application est active auquel cas didReceiveRemoteNotification est appelé afin de traiter la notification en question
- soit l'application n'est pas active et c'est à l'ouverture que la notification sera traitée via un passage par " launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey] "
Dans les deux cas ceci n'est (ci j'ai bien compris) valable que pour la réception d'une seule notification à la fois. Quand est il si l'application est inactive et que l'on reçoit plusieurs notification ?
Dans mon cas, si l'utilisateurs reçoit plusieurs notifications, j'aimerai être en mesure de toute les traité à l'ouverture (certaines faisant l'objet d'un téléchargement sur le serveur).
J'ai fouillé un peu partout mais sans succès pour l'instant.
Merci,
bonne soirée
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tu as raison sur le comportement. Concernant le fait de telecharger du contenu, tu peux utiliser le "content-available" qui se charge de DL du contenu avant d'afficher la notif.
Tout est expliqué içi: https://developer.apple.com/videos/wwdc/2014/#713
Je ne comprend pas pourquoi un système plus simple n'est pas mis en place. Permettant de stocker les notifications et à l'ouverture de l'application de les traités. Car dans mon cas la notifications transporte des informations sous forme d'entier.
Par exemple le cas de Facebook. Si l'on reçoit plusieurs notifications, et que l'application est ouverte normalement, l'application doit donc interroger les serveurs pour retrouvé les notifications et les informations associées ?
En background, tu peux les enregistrer et à l'ouverture, regarder si y'en a de sauvegarder ?
Et dans le cas où l'utilisateur désactive l'actualisation en tâche de fond, cela ne marcherai donc plus...
Sinon une solution, bien que extrêmement coûteuse d'un point de vue serveur/cloud serait de stocker les données dans le cloud. Et à chaque ouverture de l'application d'aller vérifier que rien n'est à aller chercher. Ca me semble être au final la seule solution à 100% fonctionnelle malheureusement...
EDIT : j'ai finalement tout stocker dans le cloud, et à l'ouverture via l'application je vérifie la valeur de mon badge, si c'est différent de zéro je récupère ce qui est nécessaire dans le cloud.