56 votes

Quelle est la différence entre la notification à distance et la notification silencieuse dans iOS ?

Quand je lis Apple Docs Ils mentionnent trois types de notification : locale, à distance et silencieuse.

La notification locale peut être déduite de son nom, c'est-à-dire qu'elle est envoyée localement par l'application.

Cependant, quelle est la différence entre les deux autres types ?

1 votes

NOTE : Les documents d'Apple ont renommé silencieux notification à arrière-plan notification !

199voto

Honey Points 9108

EDITAR: Bien que cette réponse soit tout à fait applicable, il y a quelques ajouts (pas de changements) aux notifications dans iOS 12. Je recommande vivement de regarder WWDC 2018 : Les nouveautés en matière de notifications aux utilisateurs et lire cet article étonnant et à lire absolument .

Les principaux changements sont les suivants :

  • notifications groupées avec un format de résumé
  • notifications provisoires c'est à dire montrer les notifications directement dans le centre de notification sans la permission de l'utilisateur
  • des notifications critiques qui ne tiennent pas compte de l'option "ne pas déranger" ou "muet".
  • la possibilité d'interagir avec les notifications dans les extensions
  • possibilité de réinitialiser ou de mettre à jour complètement les actions
  • possibilité d'accéder en profondeur aux paramètres de notification de l'application à partir du centre de notification du téléphone

NOTE IMPORTANTE : Je ne sais pas depuis quand, mais d'après les documents d'Apple, la "notification silencieuse" a été renommé à "notification en arrière-plan".

Il y a trop de paramètres qui doivent être réglés correctement pour que ça fonctionne. Je vais essayer de les disséquer et de les rendre plus faciles à comprendre.

Dans l'ensemble, plusieurs éléments sont importants.

  • la différence globale entre un silencieux y utilisateur notification
  • différents types de utilisateur notifications
  • comment une notification à distance, c'est-à-dire la charge utile est configuré à partir de votre serveur
  • comment activer les notifications push et les notifications à distance en mode arrière-plan sur votre projet
  • comment enregistrer votre jeton avec les APNs pour à distance y silencieux l'architecture des notifications et des APNs
  • comment demander l'autorisation de utilisateur notifications
  • l'activation de l'actualisation de l'application en arrière-plan et des notifications à partir de l'écran d'accueil. dispositif
  • ce qui est content-available
  • comprendre que l'iOS est en amont à votre application lorsqu'il s'agit de recevoir une notification à distance.
  • que se passe-t-il lorsque le système d'exploitation reçoit des notifications lorsque l'application a été arrêtée par l'utilisateur ?
  • Une note sur la fiabilité et l'architecture des APNs

Je recommande vivement à tout le monde de regarder les 7 premières minutes de : WWDC 2015 : Nouveautés dans les notifications . A partir de là, le présentateur mentionne qu'il existe 2 grands types de notifications :

Notifications silencieuses

Ils se produisent en arrière-plan, c'est pourquoi vous ne voyez jamais d'alerte/de badge/de son. Les choses sont téléchargées sans que vous les connaissiez.

bug d'iOS 11

Voir aquí . Les versions initiales d'iOS 11 présentaient des bogues pour les notifications silencieuses. Assurez-vous que que vous avez la dernière version pour vos tests, sinon, cela peut ne pas fonctionner


Notifications des utilisateurs

enter image description here

Comme son nom l'indique, il s'agit d'un lien avec la utilisateur . C'est-à-dire que l'utilisateur verra une alerte/un badge ou entendra un son. Il en existe 2 types.

Notifications locales

Une notification locale peut être déclenché de 3 manières différentes :

  • UNLocationNotificationTrigger : Vous voyez une alerte lorsque vous êtes proche d'un magasin Walmart.

  • UNTimeIntervalNotificationTrigger : par exemple, vous voyez une alerte toutes les 10 minutes.

  • UNCalendarNotificationTrigger comme le 1er décembre à 13h00 2017.

Notifications à distance

Elles sont similaires aux notifications locales mais elles sont déclenchées depuis le serveur, par exemple un message WhatsApp qui a un champ From (maman) et un champ body (je t'aime !).

Enregistrement des jetons et architecture des APNs :

Pour recevoir une notification silencieuse ou à distance, vous devez vous enregistrer pour un jeton en utilisant :

application.registerForRemoteNotifications() 

L'enregistrement ne nécessite PAS l'autorisation de l'utilisateur. Cela permet aux notifications silencieuses de devenir transparentes. Voir <a href="https://developer.apple.com/videos/play/wwdc2015/720?time=142" rel="nofollow noreferrer">ce moment de la vidéo de la WWDC</a>

Les notifications silencieuses sont activées par défaut . L'utilisateur n'a pas besoin d'approuver votre -- ne donne pas la permission à votre application de les utiliser, et vous pouvez juste commencer à les utiliser sans demander à l'utilisateur la permission.

<a href="https://developer.apple.com/videos/play/wwdc2015/720?time=126" rel="nofollow noreferrer">De la WWDC</a>

Souvenez-vous de APNs est livré à vos utilisateurs par APNs et non par votre serveur. Votre code iOS doit donc envoyer ce jeton à votre serveur. Ainsi, le serveur peut associer un jeton d'appareil donné à l'utilisateur. Lorsque vous voulez pousser vers un certain utilisateur, votre serveur indique simplement aux APNs d'envoyer une charge utile à un jeton spécifique. Ce qu'il est important de comprendre, c'est que votre serveur et les APN sont deux choses différentes.

Le flux de celui-ci ressemble à ceci :

enter image description here

  1. Le serveur/fournisseur envoie une charge utile aux APN.
  2. Les APN envoient une notification à tous les appareils cibles d'un compte donné. Par exemple, votre iPhone et votre Mac peuvent tous deux recevoir des notifications pour les e-mails/messages.
  3. Ensuite, votre iPhone/Mac transmettra ce message à l'application. Les APN n'envoient pas directement les messages à votre application. Elle les envoie à l'appareil. Puis l'iOS l'envoie à votre application.

Pour en savoir plus, voir la documentation Aperçu des APNs y Envoi de demandes de notification aux APNs


Être capable de montrer badges/alertes/sons, vous devez demander autorisation de l'utilisateur :

UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound]) { (granted, error) in

    guard error == nil else {
        //Display Error.. Handle Error.. etc..
        return
    }

    if granted {
        //Do stuff here..

        //Register for RemoteNotifications. Your Remote Notifications can display alerts now :)
        application.registerForRemoteNotifications()
    }
    else {
        //Handle user denying permissions..
    }
}

Question : Dois-je demander l'accès une fois pour les notifications locales et une fois pour les notifications à distance ?

Non. Il suffit d'écrire l'extrait ci-dessus et il demandera l'accès à les deux à distance et locale.

Maintenant, passons à la partie délicate :D


Projet Xcode + Réglages iPhone

Dois-je activer quelque chose pour recevoir des notifications silencieuses ?

  1. Vous devez activer Notifications push de vos capacités Xcode :

enter image description here

Si vous ne l'activez pas, votre application ne recevra pas de jeton. Et sans jeton, le serveur ne vous reconnaît pas.

  1. Pour pouvoir télécharger des trucs à partir du arrière-plan vous devez l'activer : notifications à distance des modes d'arrière-plan.

Pour activer backgroundModes vous pouvez le faire soit en utilisant votre plist o Capacités de Xcode .

La raison pour laquelle vous pouvez le faire, de l'une ou l'autre façon, est que plist est plus proche de votre code et est l'ancienne façon, peut-être qu'il est là pour le support de l'héritage. Xcode capabilities est la nouvelle méthode facile.

plist :

enter image description here

L'élément 0 est juste un <strong>indice </strong>il ne s'agit pas de la clé d'un dictionnaire (ce que l'on voit normalement dans une plist), l'UIBackgroundModes est une clé d'un dictionnaire. <code>array</code> de cordes. Les cordes doivent uniquement provenir d'un <em>valeur acceptée </em>de la <a href="https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW10" rel="nofollow noreferrer">Tableau UIBackgroundModes </a>.

Capacités de Xcode :

Vérifiez le Remote Notification en Xcode sous les modes d'arrière-plan comme ci-dessous :

enter image description here

Si vous ne faites rien de ce qui précède, vous pouvez désactiver les notifications avec :

enter image description here

tuera Notifications locales et à distance


Cependant si vous faire activez le rafraîchissement de l'application en arrière-plan à partir des capacités de la plist ou du Xcode, puis même si les notifications sont désactivées pour l'application, vous recevrez toujours des notifications silencieuses !

Si l'utilisateur souhaite désactiver les notifications silencieuses, il doit désactiver les deux notifications et désactiver l'actualisation de l'application en arrière-plan pour votre application / sur l'ensemble du système. Pour désactiver l'actualisation de l'application en arrière-plan sur l'ensemble de votre système, vous devez procéder comme suit :

enter image description here

Pourquoi est-ce que je dis tout cela ? Pour vous expliquer que paramètres des notifications silencieuses et push sont différentes pour l'utilisateur et les restrictions pour les envoyer sont différentes. Pour en savoir plus, voir ce moment extrait de la vidéo de la WWDC . Voir ici à la place (le lien précédent était mort) :

Les notifications silencieuses sont activées par défaut.

L'utilisateur n'a pas besoin d'approuver votre ne donne pas la permission à votre application pour les utiliser, et vous pouvez commencer à les utiliser sans demander la sans demander la permission à l'utilisateur.

Mais les notifications silencieuses sont le mécanisme derrière le rafraîchissement rafraîchir.

A tout moment, vous savez que l'utilisateur peut aller dans les paramètres et désactiver les désactiver.

Vous ne pouvez donc pas compter sur leur disponibilité permanente.

Vous ne savez pas si l'utilisateur peut les désactiver, et vous ne recevez pas de plus de notification.

Cela signifie également que les notifications silencieuses sont délivrées avec la meilleure efficacité possible. effort.

Cela signifie que lorsque la notification arrive sur l'appareil de l'utilisateur, le système va faire des choix.

Il va utiliser différents signaux de l'appareil et du comportement de l'utilisateur. l'utilisateur, comme l'alimentation ou l'heure de la journée, pour décider du bon moment moment de délivrer la notification et de lancer votre application.

Il peut essayer d'économiser la batterie ou de s'adapter au comportement de l'utilisateur. et rendre le contenu disponible quand l'utilisateur est le plus susceptible de l'utiliser.

Voir aussi aquí .

CAVEAT : Même si vous désactivez le rafraîchissement de l'arrière-plan de l'application et si vous désactivez l'autorisation des notifications, vous pouvez toujours recevoir des notifications silencieuses si votre application est en ARRIÈRE-plan. Si votre application est en arrière-plan, elle ne sera pas délivrée.


Dois-je activer quelque chose pour recevoir des notifications à distance ?

Il vous suffit d'activer Notifications push de vos capacités Xcode :

enter image description here

Si vous ne l'activez pas, votre application ne recevra pas de jeton. Et sans jeton, le serveur ne vous reconnaît pas.


APNs Structure de la charge utile

Curieux... Pouvez-vous me dire à quoi devrait ressembler ma charge utile ?

Je vous recommande vivement de voir Apple § documentation . C'est très clair ET AUSSI VOIR Envoi de demandes de notification aux APNs . En gros, la plateforme effectue un appel HTTP/2 aux APN et envoie les données utiles souhaitées. Il est essentiel d'envoyer les bons en-têtes, sinon vos notifications ne seront pas transmises aux appareils !

Merci, mais pouvez-vous me dire les parties importantes ?

uhhmm... OK, mais juste pour que tu saches que ça vient du lien que je viens de dire :

Para Notifications silencieuses il n'y a qu'un seul critère :

  • La charge utile aps Le dictionnaire doit inclure le content-available clé avec une valeur de 1 .
  • Par docs vous pouvez envoyer d'autres champs

Si des mises à jour visibles par l'utilisateur accompagnent la mise à jour de fond vous pouvez définir les clés d'alerte, de son ou de badge dans le dictionnaire aps selon le cas.

Un exemple de charge utile ressemblerait à ceci :

{
    "aps" : {
        "content-available" : 1
    },
    "acme1" : "bar",
    "acme2" : 42
}

acme1, acme2, ou simplement des données personnalisées ! Mais pour le aps vous DEVEZ suivre la structure d'Apple, sinon, il ne sera pas carte correctement et vous ne serez pas en mesure de lire les données correctement.

Note : Je n'ai pas vérifié, mais un autre ingénieur a mentionné que si vous avez notifications provisoires activé, vous devez inclure un champ d'alerte avec un corps vide pour garantir la transmission des notifications silencieuses. Par exemple :

{
    "aps" : {
        "content-available" : 1,
        "alert" : {
          "body" : "",
        },
    },
}

Para Notifications des utilisateurs :

Vous avez besoin d'un alert à l'intérieur de votre aps .

A titre d'exemple :

{
    "aps" : {
        "alert" : "You got your emails.",
        "badge" : 9,
        "sound" : "bingbong.aiff"
    },
    "acme1" : "bar",
    "acme2" : 42
}

Il existe également un troisième option dont je parlerai plus loin dans la réponse.

Quant à ce que le fixe aps y alert Les clés de dictionnaire sont, voir ces Documents d'Apple .

OK, je l'ai. Qu'est-ce que content-available ?

C'est très simple. C'est juste un drapeau qui indique à votre application que vous devez vous réveiller et télécharger quelque chose parce que j'ai du contenu disponible pour le téléchargement ! Pour plus d'informations, voir ceci moment précis .

Par défaut, le content-available n'est pas inclus, c'est-à-dire que, par défaut, les notifications que vous envoyez ne le fera pas déclencher application(_:didReceiveRemoteNotification:fetchCompletionHandler:) ou faire quelque chose dans votre application. L'application se contenterait d'afficher la notification. Si vous voulez réveiller l'application (pour faire quelque chose en arrière-plan), vous devez inclure content-available et le régler sur 1 .

§ : Si vous utilisez Firebase La structure et les clés de votre charge utile peuvent être légèrement différentes. Par exemple, la clé content-available est remplacé par content_available . Pour en savoir plus, voir Documentation sur Firebase et aussi aquí .


Je sais que vous m'avez dit que je ne peux télécharger quelque chose dans mon application que lorsque j'utilise les notifications silencieuses, mais y a-t-il un moyen de réveiller mon application en arrière-plan ET de télécharger quelque chose pour les notifications à distance ?

Oui, mais alors, comme pour la notification silencieuse, vous devez également définir l'option content-available à 1, pour qu'il sache qu'il faut se réveiller et télécharger quelque chose. Sinon, il émettra juste une alerte/un badge/un son mais ne téléchargera rien.

NOTES IMPORTANTES :

  • Si votre application n'a que des notifications silencieuses, il suffit d'activer les "notifications push" + "notifications à distance" dans les capacités et de définir les paramètres suivants content-available a 1 pour chaque charge utile.
  • Si votre application ne comporte que des notifications à distance, il suffit d'activer les "notifications push" à partir des capacités. Il n'y a rien à faire pour le content-available .
  • Toutefois, si vous souhaitez que vos notifications affichent une alerte/un badge/un son et qu'elles téléchargent également quelque chose en arrière-plan, vous devez activer et définir à la fois les "notifications à distance" et les "notifications push". content-available a 1 .

(TROISIÈME OPTION)

{
    "aps" : {
        "content-available" : 1 
        "alert" : "You got your emails.",
        "badge" : 9,
        "sound" : "bingbong.aiff"
    },
        "acme1" : "bar",
        "acme2" : 42
}

<a href="https://developer.apple.com/videos/play/wwdc2015/720?time=305" rel="nofollow noreferrer">Ce moment </a>de la vidéo de la WWDC mentionne le

Pour citer l'ingénieur Apple :

Maintenant, vous pouvez dans un utilisateur notification à distance, vous pouvez définir les mêmes contenu disponible que vous définissez dans les notifications silencieuses, et qui permet à votre application d'avoir du temps pour télécharger le contenu ou mettre à jour le contenu qu'elle veut afficher de sorte que lorsque l'utilisateur tape sur la notification, votre contenu est disponible. Et l'utilisateur voit ce que ce qu'il fait. C'est une façon d'avoir une notification silencieuse à l'intérieur d'un utilisateur. des notifications comme un résumé.


Notifications et cycle de vie des applications iOS

Je suis confus au sujet des notifications à distance. Je pensais que chaque fois que je recevais une notification, mon application devenait active en arrière-plan et téléchargeait quelque chose. Pouvez-vous m'expliquer ?

par exemple, en ce moment :

enter image description here

  • Votre iPhone vient de recevoir une notification à distance dont le corps est "sans expéditeur". Pour recevoir cette notification, WhatsApp ** n'a pas besoin** d'être exécuté en arrière-plan, c'est-à-dire que vous n'avez pas besoin d'activer les "Notifications à distance" dans BackgroundModes. Vous recevrez toujours la notification même si votre application a été quittée de force ou suspendue parce que l'option de notification à distance est activée. Le processus est géré par le système d'exploitation, et non par l'application WhatsApp. . Cependant, si vous voulez être en mesure de télécharger le message réel ou son image/vidéo sur WhatsApp (de sorte qu'une fois que votre utilisateur ouvre WhatsApp, la vidéo soit là à attendre l'utilisateur), alors vous devez activer votre application. Pour ce faire, vous devez content-available : 1 et mettre en œuvre application(_:didReceiveRemoteNotification:fetchCompletionHandler:) .

  • De même, si vous désactivez les données cellulaires pour une application, vous recevrez toujours ses notifications. Cependant, en tapant sur cette notification, l'utilisateur ne le fera pas être en mesure de faire n'importe quel demandes de réseau pour cette application. Ils pourront seulement ouvrir l'application.

  • Ou, pour un autre scénario similaire, si le serveur/point d'accès auquel vous êtes connecté a un accès restreint pour, disons, WhatsApp, il vous permettra toujours de recevoir les notifications APN. Toutefois, en appuyant sur cette notification, l'utilisateur ne le fera pas être en mesure de faire n'importe quel demandes de réseau pour cette application. Ils pourront seulement ouvrir l'application.

CAVEAT : Si l'application a été quittée de force par l'utilisateur, alors, bien que vous receviez la notification pour les raisons mentionnées ci-dessus, vous ne pouvez rien faire pour faire sortir l'application de son état de fin automatiquement (même si vous aviez content-available réglé sur 1 ). Aucune de vos méthodes déléguées ne serait touchée. Le site utilisateur doit ouvrir l'application et ce n'est qu'ensuite que les méthodes de votre délégué seront atteintes.


Une note sur la fiabilité et l'architecture des APNs :

Bien que les notifications soient largement utilisées pour fournir le contenu réel de l'application, elles ne sont PAS conçues pour livrer dans l'application. Ils sont plutôt conçus pour informer l'utilisateur que "quelque chose de nouveau est arrivé (un message de 2b ou une petite image de 50kb, ou une image de 10MB ou une vidéo de 2 GB). Ouvrez l'application si vous le souhaitez. Au fait, voici un petit morceau de ce message (le message lui-même). si il peut s'adapter, le titre de l'image ou une vignette affichée dans la notification, un titre de la vidéo ou une vignette affichée dans la vidéo". Pour en savoir plus, voir Repli "best-effort" des APN iOS . Je répète que vous ne téléchargez jamais la pièce jointe de 40 Mo envoyée dans l'e-mail. Vous êtes simplement informé de son existence. Vous en envoyez juste assez (une vue miniature de la pièce jointe) pour que l'utilisateur soit informé des nouveautés et puisse décider s'il doit ou non ouvrir l'application pour en savoir plus. Lorsque j'ai découvert iOS, je pensais que l'image ou la vidéo était envoyée par le biais de la notification push. Ce n'est pas le cas !

En particulier dans le cas des notifications silencieuses :

Lorsqu'un appareil reçoit une notification en arrière-plan, le système peut mettre en attente et retarder la livraison de la notification, ce qui peut avoir les effets secondaires suivants :

  • Lorsque le système reçoit une nouvelle notification en arrière-plan, il écarte l'ancienne notification et ne retient que la plus récente.

  • Si quelque chose quitte de force ou tue l'application, le système rejette la notification maintenue.

  • Si l'utilisateur lance l'application, le système délivre immédiatement la notification retenue. Pousser des mises à jour de fond dans votre application <a href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app" rel="nofollow noreferrer">docs</a>

  • APNs envoie un nombre limité de notifications silencieuses (notifications avec la clé de disponibilité du contenu) par jour. En outre, si l'appareil a déjà dépassé son budget d'énergie pour la journée, les notifications silencieuses ne sont plus envoyées jusqu'à ce que le budget d'énergie soit réinitialisé, ce qui se produit une fois par jour. Ces limites sont désactivées lorsque vous testez votre application à partir de Xcode. Consultez la section Pousser les mises à jour en arrière-plan de votre application.

<a href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/handling_notification_responses_from_apns" rel="nofollow noreferrer">Conseils de dépannage pour le traitement des erreurs renvoyées par les PNA</a>

Même pour les notifications d'utilisateurs distants, il se peut que l'utilisateur ne soit pas connecté à Internet, ce qui peut entraîner l'expiration du contenu ou l'étranglement des APN si vous envoyez trop de notifications ou trop rapidement. Voir encore ici

Pour faire court, les APN et le système d'exploitation sont les rois et vous êtes en dessous. Vous ne pouvez donc pas compter sur lui pour se conformer à tous vos ordres. Cela dit, il est super fiable dans le sens où vous voyez la plupart des applications de messagerie l'utiliser avec succès.

Addendum Comment générer un certificat de notification push, .p12 o .pem et comment tester tout cela ?

Regarde juste ça excellente réponse . Il contient le plus grand nombre de captures d'écran que j'ai jamais vu.

2 votes

"Même si vous désactivez le rafraîchissement en arrière-plan de l'application et que vous désactivez l'autorisation des notifications, vous pouvez toujours recevoir des notifications silencieuses si votre application est en FOREGROUND." J'ai essayé cela sans succès. L'avez-vous essayé et vu fonctionner ?

0 votes

@JohnL. Je vais devoir le tester et revenir vers vous plus tard. Je ne sais pas quand, parce que je dois configurer des choses pour le tester.

1 votes

Bonjour, lorsque je reçois une notification push, l'application devrait s'activer en arrière-plan et effectuer la tâche indiquée dans , ( comme le code de mise à jour de la localisation de l'utilisateur ou un autre code ) ,- (void)application :(UIApplication *)application didReceiveRemoteNotification :(NSDictionary *)userInfo fetchCompletionHandler :(void (^)(UIBackgroundFetchResult))completionHandler, mais mon application ne s'active pas tant que l'utilisateur n'a pas tapé sur la notification. J'ai suivi tous les conseils de @Honey, mais sans succès. Quelqu'un connaît-il la solution ? J'utilise FCM pour la notification.

7voto

Juan Curti Points 1895

La notification push fera savoir à l'utilisateur qu'il a reçu une notification (en affichant la popup de notification par exemple). La notification silencieuse mettra à jour, mais l'utilisateur n'en sera pas informé. Dans tous les cas, vous pouvez effectuer des actions lorsque vous recevez une notification silencieuse, tout comme s'il s'agissait d'une notification push. La seule différence est que l'utilisateur ne sera pas notifié par la popup de notification.

Avec la notification push : enter image description here

Avec notification silencieuse : enter image description here

La différence se situe au niveau de la charge utile :

Notification instantanée :

     aps {
       content-available: 1
       alert: {...}
     }

Notification silencieuse :

    aps {
      content-available: 0
      alert: {...}
    }

Et vous devez mettre en Capacités le mode d'arrière-plan que vous avez choisi.

0 votes

Notification push ? Vous voulez dire "push" = télécommande. Ou push = distant + silencieux ?

2 votes

Push = télécommande + silencieux. La seule différence est que le silencieux ne notifie pas l'utilisateur avec le popup. De toute façon, cela ne se produit que lorsque l'application est en arrière-plan. Si l'application est au premier plan, l'utilisateur n'est jamais notifié par la popup.

0 votes

Le type de notification (à distance, silencieuse) est-il configuré sur mon serveur avant d'être envoyé ? Ou c'est simplement un moyen utilisé par iOS pour classer les notifications push en fonction de l'état du téléphone ?

1voto

Bidisha Pyne Points 447

Une notification push silencieuse parvient à l'appareil, l'utilisateur ne sait rien de la notification mais son application reçoit la notification et l'application aura un certain temps pour télécharger le nouveau contenu et le présenter à l'utilisateur, quel que soit l'état de l'application (en cours d'exécution ou non).

La méthode de notification push à distance est appelée uniquement lorsque votre application est en cours d'exécution. Si l'application est suspendue ou n'est pas en cours d'exécution, le système réveille ou lance votre application et la met en état d'exécution en arrière-plan avant d'appeler la méthode. Lorsque cette méthode est appelée, votre application dispose d'un délai de 30 secondes pour effectuer l'opération de téléchargement et appeler le gestionnaire d'achèvement spécifié. Si le gestionnaire n'est pas appelé à temps, votre application sera suspendue.

Pour plus de détails techniques, vous pouvez consulter ces liens :

Notifications d'Apple

Notifications silencieuses

0 votes

Bonjour, lorsque je reçois une notification push, l'application devrait s'activer en arrière-plan et effectuer la tâche indiquée dans , ( comme le code de mise à jour de la localisation de l'utilisateur ou un autre code ) ,- (void)application :(UIApplication *)application didReceiveRemoteNotification :(NSDictionary *)userInfo fetchCompletionHandler :(void (^)(UIBackgroundFetchResult))completionHandler, mais mon application ne serait pas active jusqu'à ce que l'utilisateur tape sur la notification. Mais mon application ne serait pas active tant que l'utilisateur n'aurait pas tapé sur la notification. Comment pourrais-je le faire alors que l'application est en arrière-plan ?

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