Vue d’ensemble des notifications périodiquesPeriodic notification overview

Les notifications périodiques, également appelées notifications interrogées, mettent à jour les vignettes et les badges à intervalle fixe en téléchargeant du contenu à partir d’un service cloud.Periodic notifications, which are also called polled notifications, update tiles and badges at a fixed interval by downloading content from a cloud service. Pour utiliser des notifications périodiques, le code de votre application cliente doit fournir deux éléments d’informations :To use periodic notifications, your client app code needs to provide two pieces of information:

  • l’URI (Uniform Resource Identifier) d’un emplacement Web que Windows interroge pour mettre à jour les vignettes ou les badges de votre application ;The Uniform Resource Identifier (URI) of a web location for Windows to poll for tile or badge updates for your app
  • la fréquence d’interrogation de cet URI.How often that URI should be polled

Les notifications périodiques permettent à votre application d’obtenir des mises à jour de vignettes dynamiques avec un minimum d’intervention du service cloud et d’investissement client.Periodic notifications enable your app to get live tile updates with minimal cloud service and client investment. Les notifications périodiques sont une bonne méthode de distribution du même contenu à un large public.Periodic notifications are a good delivery method for distributing the same content to a wide audience.

Remarque    Vous pouvez en savoir plus en téléchargeant l' exemple notifications push et périodiques pour Windows 8.1 et réutiliser son code source dans votre application Windows 10.Note   You can learn more by downloading the Push and periodic notifications sample for Windows 8.1 and re-using its source code in your Windows 10 app.

 

FonctionnementHow it works

Les notifications périodiques nécessitent que votre application héberge un service cloud.Periodic notifications require that your app hosts a cloud service. Le service est interrogé périodiquement par tous les utilisateurs qui disposent de l’application.The service will be polled periodically by all users who have the app installed. À chaque intervalle d’interrogation, par exemple une fois par heure, Windows envoie une requête HTTP GET à l’URI, télécharge le contenu demandé pour la vignette ou le badge (contenu XML par exemple), qui est fourni en réponse à la requête, puis affiche ce contenu dans la vignette de l’application.At each polling interval, such as once an hour, Windows sends an HTTP GET request to the URI, downloads the requested tile or badge content (as XML) that is supplied in response to the request, and displays the content on the app's tile.

Notez que les mises à jour périodiques ne peuvent pas être utilisées avec les notifications toast.Note that periodic updates cannot be used with toast notifications. Pour la remise des toasts, il est préférable de recourir aux notifications planifiées ou aux notifications Push.Toast is best delivered through scheduled or push notifications.

Emplacement d’URI et contenu XMLURI location and XML content

Toute adresse Web HTTP ou HTTPS valide peut être utilisée comme URI interrogeable.Any valid HTTP or HTTPS web address can be used as the URI to be polled.

La réponse du serveur cloud comprend le contenu téléchargé.The cloud server's response includes the downloaded content. Le contenu renvoyé à partir de l’URI doit être conforme à la spécification de schéma XML de la vignette ou du badge. De plus, il doit être au format UTF-8.The content returned from the URI must conform to the Tile or Badge XML schema specification, and must be UTF-8 encoded. Vous pouvez utiliser des en-têtes HTTP définis pour spécifier l’heure d’expiration ou la balise de la notification.You can use defined HTTP headers to specify the expiration time or tag for the notification.

Comportement de l’interrogationPolling Behavior

Appelez l’une de ces méthodes pour lancer l’interrogation :Call one of these methods to begin polling:

Quand vous appelez l’une de ces méthodes, l’URI est immédiatement interrogé et la vignette ou le badge est mis à jour à l’aide du contenu reçu.When you call one of these methods, the URI is immediately polled and the tile or badge is updated with the received contents. Après cette interrogation initiale, Windows continue de fournir des mises à jour en fonction de l’intervalle demandé.After this initial poll, Windows continues to provide updates at the requested interval. L’interrogation se poursuit jusqu’à ce que vous l’arrêtiez explicitement (avec TileUpdater.StopPeriodicUpdate), jusqu’à ce que votre application soit désinstallée, ou, dans le cas d’une vignette secondaire, jusqu’à ce que la vignette soit supprimée.Polling continues until you explicitly stop it (with TileUpdater.StopPeriodicUpdate), your app is uninstalled, or, in the case of a secondary tile, the tile is removed. Dans le cas contraire, Windows continue à rechercher des mises à jour pour votre vignette ou votre badge, même si votre application n’est jamais relancée.Otherwise, Windows continues to poll for updates to your tile or badge even if your app is never launched again.

Intervalle de récurrenceThe recurrence interval

Vous devez définir l’intervalle de récurrence sous forme de paramètre des méthodes indiquées ci-dessus.You specify the recurrence interval as a parameter of the methods listed above. Note que même si Windows effectue l’interrogation en respectant au mieux ce qui est indiqué, l’intervalle n’est pas précis.Note that while Windows makes a best effort to poll as requested, the interval is not precise. L’intervalle d’interrogation demandé peut être retardé de 15 minutes au maximum en fonction de Windows.The requested poll interval can be delayed by up to 15 minutes at the discretion of Windows.

Heure de débutThe start time

Vous pouvez indiquer une heure particulière de la journée pour le lancement de l’interrogation.You optionally can specify a particular time of day to begin polling. Prenons l’exemple d’une application qui change son contenu de vignette une seule fois par jour.Consider an app that changes its tile content just once a day. Dans ce cas précis, nous vous recommandons d’effectuer l’interrogation peu de temps avant de mettre à jour votre service cloud.In such a case, we recommend that you poll close to the time that you update your cloud service. Par exemple, si un site propose quotidiennement des offres d’achat et s’il publie les offres du jour à 8 h 00, effectuez la recherche de nouvelles vignettes de contenu juste après 8 h 00.For example, if a daily shopping site publishes the day's offers at 8 AM, poll for new tile content shortly after 8 AM.

Si vous indiquez une heure de début, le premier appel de la méthode entraîne immédiatement une recherche de contenu.If you provide a start time, the first call to the method polls for content immediately. Puis, une interrogation à intervalles réguliers démarre moins de 15 minutes après l’heure de début indiquée.Then, regular polling starts within 15 minutes of the provided start time.

Comportement des nouvelles tentatives automatiquesAutomatic retry behavior

L’URI est interrogé seulement si l’appareil est en ligne.The URI is polled only if the device is online. Si le réseau est disponible, mais que l’URI ne peut pas être contacté pour une raison quelconque, cette itération de l’intervalle d’interrogation est ignorée et l’URI est réinterrogé lors du prochain intervalle.If the network is available but the URI cannot be contacted for any reason, this iteration of the polling interval is skipped, and the URI will be polled again at the next interval. Si l’appareil est dans un état d’arrêt, de veille ou de veille prolongée quand un intervalle d’interrogation est atteint, l’URI est interrogé quand l’appareil quitte son état d’arrêt ou de veille.If the device is in an off, sleep, or hibernated state when a polling interval is reached, the URI is polled when the device returns from its off or sleep state.

Gestion des mises à jour d’applicationHandling app updates

Si vous publiez une mise à jour d’application qui modifie votre URI d’interrogation, vous devez ajouter une tâche d’arrière-plan de déclencheur horaire quotidien qui appelle StartPeriodicUpdate avec le nouvel URI pour vérifier que vos vignettes utilisent le nouvel URI.If you release an app update that changes your polling URI, you should add a daily time trigger background task which calls StartPeriodicUpdate with the new URI to ensure your tiles are using the new URI. Sinon, si les utilisateurs reçoivent la mise à jour de votre application, mais ne lancent pas votre application, leurs vignettes utilisent toujours l’ancien URI, ce qui peut ne pas s’afficher si l’URI n’est pas valide ou si la charge utile retournée fait référence à des images locales qui n’existent plus.Otherwise, if users receive your app update but don't launch your app, their tiles will still be using the old URI, which may fail to display if the URI is now invalid or if the returned payload references local images that no longer exist.

Expiration des notifications par vignette et par badgeExpiration of tile and badge notifications

Par défaut, les notifications périodiques par vignette et par badge expirent trois jours après avoir été téléchargées.By default, periodic tile and badge notifications expire three days from the time they are downloaded. Quand une notification expire, le contenu est supprimé du badge, de la vignette ou de la file d’attente, et n’est plus présenté à l’utilisateur.When a notification expires, the content is removed from the badge, tile, or queue and is no longer shown to the user. Il est conseillé de définir un délai d’expiration explicite pour toutes les notifications périodiques par vignette et par badge en utilisant un délai approprié pour votre application ou notification, afin de vous assurer que le contenu ne persiste pas plus longtemps que nécessaire.It is a best practice to set an explicit expiration time on all periodic tile and badge notifications, using a time that makes sense for your app or notification, to ensure that the content does not persist longer than it is relevant. Un délai d’expiration explicite est essentiel pour les contenus dont la durée de vie est limitée.An explicit expiration time is essential for content with a defined life span. Cette approche assure également la suppression du contenu périmé si votre service cloud n’est plus accessible, ou que l’utilisateur se déconnecte du réseau pour une période prolongée.It also assures the removal of stale content if your cloud service becomes unreachable, or if the user disconnects from the network for an extended period of time.

Votre service cloud définit une date et une heure d’expiration pour une notification en incluant l’en-tête HTTP X-WNS-Expires dans la charge utile de réponse.Your cloud service sets an expiration date and time for a notification by including the X-WNS-Expires HTTP header in the response payload. L’en-tête HTTP X-WNS-Expires est conforme au format HTTP-date.The X-WNS-Expires HTTP header conforms to the HTTP-date format. Pour plus d’informations, voir StartPeriodicUpdate ou StartPeriodicUpdateBatch.For more information, see StartPeriodicUpdate or StartPeriodicUpdateBatch.

Par exemple, au cours d’une journée active d’échanges sur le marché boursier, vous pouvez doubler le délai d’expiration de la mise à jour du cours d’une action par rapport à l’intervalle d’interrogation (par exemple, une heure après la réception du contenu, si vous effectuez l’interrogation chaque demi-heure).For example, during a stock market's active trading day, you can set the expiration for a stock price update to twice that of your polling interval (such as one hour after receipt if you are polling every half-hour). Autre exemple, dans une application d’infos, le délai d’expiration approprié pour la mise à jour quotidienne des vignettes d’infos est d’une journée.As another example, a news app might determine that one day is an appropriate expiration time for a daily news tile update.

Notifications périodiques dans la file d’attente de notificationsPeriodic notifications in the notification queue

Vous pouvez utiliser des mises à jour périodiques de vignettes avec le cycle des notifications.You can use periodic tile updates with notification cycling. Par défaut, une vignette de l’écran d’accueil affiche le contenu d’une seule notification jusqu’à ce qu’elle soit remplacée par une nouvelle notification.By default, a tile on the Start screen shows the content of a single notification until it is replaced by a new notification. Lorsque vous activez le cycle, une file d’attente peut comporter jusqu’à cinq notifications que la vignette affiche à tour de rôle.When you enable cycling, up to five notifications are maintained in a queue and the tile cycles through them.

Si la file d’attente atteint le nombre maximal de cinq notifications, la nouvelle notification suivante remplace la notification la plus ancienne dans la file d’attente.If the queue has reached its capacity of five notifications, the next new notification replaces the oldest notification in the queue. Toutefois, vous avez la possibilité de modifier cette stratégie de remplacement dans la file d’attente en définissant des balises sur vos notifications.However, by setting tags on your notifications, you can affect the queue's replacement policy. Une balise est une chaîne spécifique de l’application, d’une longueur maximale de 16 caractères alphanumériques, qui ne respecte pas la casse et qui est spécifiée dans l’en-tête HTTP X-WNS-Tag de la charge utile de réponse.A tag is an app-specific, case-insensitive string of up to 16 alphanumeric characters, specified in the X-WNS-Tag HTTP header in the response payload. Windows compare la balise d’une notification entrante aux balises de toutes les notifications déjà présentes en file d’attente.Windows compares the tag of an incoming notification with the tags of all notifications already in the queue. Si une correspondance existe, la nouvelle notification remplace la notification en file d’attente ayant la même balise.If a match is found, the new notification replaces the queued notification with the same tag. S’il n’existe aucune correspondance, la règle de remplacement par défaut est appliquée et la nouvelle notification remplace la notification la plus ancienne dans la file d’attente.If no match is found, the default replacement rule is applied and the new notification replaces the oldest notification in the queue.

Vous pouvez utiliser la mise en file d’attente des notifications et les balises pour mettre en œuvre toutes sortes de scénarios de notification.You can use notification queuing and tagging to implement a variety of rich notification scenarios. Par exemple, une application de cotations boursières peut envoyer cinq notifications, chacune d’elles s’appliquant à une action spécifique et portant une balise du nom de l’action en question.For example, a stock app could send five notifications, each about a different stock and each tagged with a stock name. De cette manière, la file d’attente ne peut pas comporter deux notifications pour la même action, avec la plus ancienne des deux qui serait obsolète.This prevents the queue from ever containing two notifications for the same stock, the older of which is out of date.

Pour plus d’informations, voir Utilisation de la file d’attente de notifications.For more information, see Using the notification queue.

Activation de la file d’attente de notificationsEnabling the notification queue

Pour implémenter une file d’attente de notifications, activez d’abord la file d’attente pour votre vignette (voir Comment utiliser la file d’attente de notifications avec des notifications locales).To implement a notification queue, first enable the queue for your tile (see How to use the notification queue with local notifications). L’appel qui permet d’activer la file d’attente doit être effectué une et une seule fois. Cependant, cela ne pose aucun problème d’effectuer l’appel chaque fois que votre application est lancée.The call to enable the queue needs to be done only once in your app's lifetime, but there is no harm in calling it each time your app is launched.

Interrogation de plusieurs notifications à la foisPolling for more than one notification at a time

Vous devez fournir un URI unique pour chaque notification que Windows doit télécharger pour votre vignette.You must provide a unique URI for each notification that you'd like Windows to download for your tile. À l’aide de la méthode StartPeriodicUpdateBatch , vous pouvez fournir jusqu’à cinq URI à la fois en vue de leur utilisation avec la file d’attente de notification.By using the StartPeriodicUpdateBatch method, you can provide up to five URIs at once for use with the notification queue. Chaque URI fait l’objet d’une interrogation pour une seule charge utile de notification, plus ou moins au même moment.Each URI is polled for a single notification payload, at or near the same time. Chaque URI interrogé peut renvoyer son propre délai d’expiration et sa propre valeur de balise.Each polled URI can return its own expiration and tag value.