Résolution des problèmes de notification pour les vignettes, les toasts et les badges (applications Windows Runtime)
[ Cet article est destiné aux développeurs de Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]
Cette rubrique décrit les étapes initiales de résolution des problèmes liés aux types de notification (vignette, toast et badge), ainsi qu’aux diverses méthodes de notification (locales, Push, périodiques et planifiées).
Résolution des problèmes liés aux notifications par vignette
Cette section répertorie un certain nombre d’erreurs courantes commises lors de l’utilisation des vignettes et des modèles de vignette. Sauf spécification contraire, chaque solution s’applique à tous les types de remises de notifications, qu’elles soient locales, planifiées, périodiques ou Push.
Notification par vignette locale non affichée
Le problème le plus courant dans cette situation tient au fait que le code XML utilisé pour définir votre notification est incorrect d’une façon ou d’une autre. Il peut toutefois y avoir d’autres causes, que les vérifications suivantes vous permettent également d’envisager :
- Vérifier les paramètres utilisateur
- Fournir au manifeste de l’application des ressources de logo large
- Vérifier la taille de vos images
- Vérifier vos URL
- Examiner vos formats d’images
- Vérifier votre syntaxe XML
- Vérifier le délai d’expiration de votre notification
- S’assurer d’avoir activé la file d’attente de notifications
Vérifier les paramètres utilisateur
Cause possible : l’utilisateur ou l’administrateur a désactivé les notifications. Vérifiez si l’application a affiché l’option Vignette activée/désactivée dans la barre de l’application et qu’elle n’est pas désactivée. Côté administrateur, il existe plusieurs stratégies de groupe qui permettent de désactiver les notifications. Vérifiez auprès de votre administrateur que les notifications sont activées.
Résolution : activez les notifications via la barre de l’application ou demandez à un administrateur d’activer les notifications via la stratégie de groupe.
Pour plus d’informations, voir TileUpdater.setting.
Fournir au manifeste de l’application des ressources de logo large
Cause possible : le manifeste de l’application n’a pas spécifié d’image de ressource de vignette par défaut pour la taille de vignette spécifiée dans la notification. Par exemple, si aucune image de vignette large par défaut n’est fournie, la vignette ne peut pas afficher de modèles de notification de grand format. Dans l’idéal, les notifications par vignette doivent fournir des modèles dans la charge utile de notification pour toutes les tailles de vignette possibles. En effet, à moins que la vignette n’utilise qu’une image de taille moyenne, l’expéditeur ne peut jamais savoir quelle est la taille de vignette affichée quand la notification arrive. La définition de ce paramètre appartient entièrement à l’utilisateur.
Résolution : dans votre charge utile de notification, fournissez une version de la mise à jour pour chaque type d’image de logo par défaut que vous avez fourni dans votre manifeste. Votre vignette peut être redimensionnée à n’importe quelle taille qui possède une image de logo par défaut.
Vérifier la taille de vos images
Cause possible : chaque image d’une notification doit être inférieure à 1024 x 1024 pixels et à 200 Ko. Si une image dans une notification excède ces valeurs, la notification est rejetée.
Résolution : réduisez vos images.
Pour plus d’informations, voir Tailles des images de vignette et de toast.
Vérifier vos URL
Cause possible : erreurs de syntaxe de l’URL.
Dans les notifications, les images sont spécifiées par l’intermédiaire d’une référence de ressource ou d’un chemin d’accès littéral. Si vous utilisez un chemin d’accès, vous devez le spécifier avec l’un de ces trois protocoles :
Préfixe | Utilisation | Remarques |
---|---|---|
http:// et https:// | Images stockées en ligne | Ces images peuvent être mises en cache localement, ainsi votre serveur d’images ne reçoit pas forcément de demande pour l’image. Des chaînes de requête peuvent être ajoutées à ces URL. Assurez-vous que votre serveur Web retourne l’image originale plutôt qu’une erreur 404 si vous choisissez d’ignorer la chaîne de recherche. Exemple de chaîne de recherche : ?scale=100&contrast=blk&lang=en-US Notez que pour récupérer le contenu d’une notification à partir d’Internet, votre application doit déclarer la fonctionnalité « Internet (Client) » dans le manifeste de son application. |
ms-appx:/// | Images incluses dans le package de votre application | Ces images font partie de l’installation de votre application. Notez que cette référence nécessite trois barres obliques après les deux-points. Après ces trois barres obliques, l’URI (Uniform Resource Identifier) accepte une barre oblique (/) ou une barre oblique inverse (\) pour séparer les dossiers dans un chemin d’accès, mais la plupart des langages de programmation imposent que vous utilisiez un caractère d’échappement lorsque vous spécifiez une barre oblique inverse (\\). |
ms-appdata:///local/ | Images enregistrées localement par votre application | Cet emplacement correspond au dossier retourné par Windows.Storage.ApplicationData.current.localFolder. Notez que cette référence nécessite trois barres obliques après les deux-points. Les séparateurs de dossiers dans le chemin doivent utiliser des caractères d’échappement (\\). |
Remarque Le caractère « / » fonctionne comme un séparateur dans chaque type de spécification. Nous vous avons recommandé d’utiliser systématiquement « / » au lieu de « \ » afin d’éviter toute confusion avec les caractères d’échappement.
Exemples de formats d’URL corrects :
URL |
---|
https://www.contoso.com/icon.jpg |
ms-appx:///images/icon.png |
ms-appdata:///local/myDrawing.jpg |
Exemples de formats d’URL incorrects :
URL | Remarques |
---|---|
https://www.contoso.com\fail.png | Un chemin d’accès HTTP doit utiliser le caractère /. N’utilisez pas le caractère \. |
http:www.contoso.com | Un chemin d’accès HTTP exige une double barre oblique (//) après les deux-points. |
"ms-appdata:///local/c:\\images\\Drawing.jpg" | Une application ne peut pas faire référence à des images situées en dehors de son emplacement de stockage local. |
"ms-appx://images/triangle.png" | Utilisez trois barres obliques au lieu de deux avec « ms-appx: ». |
Examiner vos formats d’images
Cause possible : le format des images n’est pas pris en charge.
Les notifications peuvent uniquement utiliser des images au format .gif, .png ou .jpg/.jpeg. Le format de l’image doit également correspondre à son extension. Le simple changement de nom d’un type de fichier non pris en charge via l’ajout d’une extension prise en charge ne suffit pas.
Les erreurs de formats d’images sont le plus souvent dues à la sérialisation des images bitmap dans l’emplacement de stockage Windows.Storage.ApplicationData.current.localFolder. Assurez-vous de choisir le format que vous souhaitez, sinon l’image sera stockée au format bitmap Windows et son en-tête comprendra « BMP », un type non pris en charge.
Vérification : commencez par vérifier que vous pouvez envoyer une notification en texte seul afin de limiter le problème à l’image. Pour contrôler le format de votre image, chargez-la dans un programme de traitement d’image et enregistrez-la au format .jpg. Si vous faites référence à ce nouveau fichier .jpg dans votre notification et que l’erreur ne se reproduit pas, il s’agissait probablement d’une erreur de format d’image. Vous pouvez également ouvrir le fichier dans l’éditeur binaire Microsoft Visual Studio et examiner son en-tête.
Résolution : modifiez ou corrigez le format de vos images.
Vérifier votre contenu et votre syntaxe XML
Cause possible : erreurs de syntaxe XML ou de validation.
Hormis la syntaxe de base, assurez-vous que votre code XML est complet et correct, surtout si vous avez construit la charge utile en tant que chaîne sans utiliser les API ou la bibliothèque NotificationsExtensions. Voici un certain nombre d’erreurs courantes commises dans le contenu XML :
- Respect de la casse. Les noms de balises, les noms d’attributs et les valeurs d’attributs respectent tous la casse. Vérifiez que la casse de caractères de votre code XML est correcte.
- Un élément binding doit être fourni pour chaque taille de vignette. Dans chaque notification envoyée, vous devez fournir un élément binding pour chacune des tailles de vignettes (images de logo que vous avez fournies dans votre manifeste) que vous prenez en charge.
- Les chaînes de texte ne doivent contenir aucun caractère XML réservé. Par exemple, vous ne pouvez pas mettre des chaînes de vignette en italique en incluant des balises <i> et </i>. Si vous prévoyez d’afficher les caractères littéraux « <i> », utilisez une séquence d’échappement correcte. Pour plus d’informations sur les séquences d’échappement dans le langage XML, voir Entités de caractères XML et XAML.
- La valeur fournie pour les attributs lang doit respecter la spécification ITEF BCP 47.
- Les chaînes XML créées localement (pour les notifications locales ou planifiées) doivent utiliser le codage UTF-16. Lorsque les chaînes sont envoyées par notifications Push ou interrogées à partir d’une URL, elles doivent utiliser le codage UTF-8.
- Si vous incluez un élément image dans votre charge utile XML avec un attribut src non vide, n’oubliez pas d’inclure une référence à une image valide, sinon la notification sera ignorée.
Si votre notification par vignette ne s’affiche pas, vous pouvez utiliser le Journal des événements pour vérifier les erreurs. Recherchez les événements relatifs à votre notification par vignette dans l’Observateur d’événements, sous Journaux des applications et des services > Microsoft > Windows > Apps > Microsoft-Windows-TWinUI/Operational.
Vérification : utilisez un vérificateur de syntaxe XML, tel que l’éditeur Visual Studio, pour rechercher des erreurs de syntaxe de base. Consultez la référence de modèle appropriée (TileTemplateType) pour vérifier que le nombre d’images dont vous disposez est correct et que vous attribuez les bonnes images aux index d’image appropriés.
Résolution : modifiez votre code XML ou utilisez un autre modèle qui corresponde à votre contenu. Vous pouvez également utiliser la bibliothèque NotificationsExtensions pour éviter de manipuler le code XML directement.
Vérifier que votre notification n’est pas arrivée à expiration
Cause possible : la valeur de délai d’expiration est trop faible.
Si vous définissez le délai d’expiration dans votre notification via la méthode expirationTime (pour une notification locale) ou le champ d’en-tête X-WNS-TTL (dans une notification Push), gardez à l’esprit que les valeurs représentent des millisecondes. Par exemple, si vous souhaitez qu’une notification par vignette dure exactement une heure, la valeur doit être 60 * 60 * 1000 = 3600000.
Résolution : utilisez une valeur plus importante.
S’assurer d’avoir activé la file d’attente des notifications, en cas de cycle de notifications souhaité
Cause possible : la file d’attente de notifications par vignette n’a pas été activée.
Par défaut, les vignettes affichent une seule mise à jour à la fois et une nouvelle notification entrante remplace la notification existante. Si vous souhaitez afficher en roulement les cinq dernières notifications, vous devez appeler la méthode TileUpdater.enableNotificationQueue(true) dans le code d’initiation de votre application. Vous ne devez effectuer cette opération qu’une seule fois pendant toute la durée de vie de votre application. Pour plus d’informations, voir Comment utiliser la file de notifications avec des notifications locales.
Résolution : appelez la méthode enableNotificationQueue(true) dans votre code d’initialisation. Vérifiez également que les balises de notification sont uniques.
Résolution des problèmes liés aux notifications planifiées
Vignette ou toast planifié non affiché
Cause possible : en règle générale, si vous rencontrez des problèmes d’affichage de mises à jour des vignettes ou de notifications toast, cela signifie que le format du contenu XML de la notification est incorrect. De même que pour les notifications non planifiées, les notifications par vignette et toast planifiées, doivent respecter les schémas XML de vignette et de toast.
Résolution : testez votre code XML, dans un premier temps via une notification locale, en déboguant les problèmes de remise avec des notifications planifiées. Pour plus d’informations, voir la section Notification par vignette locale non affichée ou Notification toast locale non affichée dans cette rubrique.
Échec de l’appel de la méthode AddToSchedule par l’application
Cause possible : vous avez dépassé le nombre maximal autorisé de notifications planifiées.
Résolution : les deux méthodes TileUpdater.addToSchedule et ToastNotifier.addToSchedule échoueront si vous tentez de planifier plus de 4 096 notifications. Réduisez le nombre de notifications planifiées.
Cause possible : la planification de votre notification est antérieure à l’heure actuelle de l’horloge système.
Résolution : vérifiez que l’heure de notification planifiée est dans le futur. Vérifiez l’heure de l’horloge système.
Résolution des problèmes liés aux notifications périodiques (interrogations)
Les notifications périodiques ne mettent à jour ni la vignette ni le badge
Vous pourrez être confronté à un ou plusieurs problèmes susceptibles d’empêcher l’affichage de vos notifications périodiques :
- Le service Web ne renvoie pas un document XML valide, conforme au schéma XML des vignettes. Si vous rencontrez des problèmes lors de l’implémentation des notifications périodiques, vérifiez tout d’abord que le format XML de la vignette est correct. Lors du débogage d’un problème lié aux notifications périodiques, nous vous recommandons, dans un premier temps, de tester votre XML via une notification locale. Pour plus d’informations, voir la section Notification par vignette locale non affichée dans cette rubrique, ainsi que Démarrage rapide : envoi d’une mise à jour de vignette.
- Le texte renvoyé par la demande d’interrogation n’est pas au format UTF-8. Le codage UTF-8 est obligatoire.
- Votre service ne répond pas correctement à la demande HTTP GET utilisée par Windows lors de l’interrogation de l’URL indiquée pour votre service. Les protocoles HTTP et HTTPS sont tous les deux pris en charge.
- Votre application n’a pas déclaré la fonctionnalité Internet dans son fichier manifeste (package.appxmanifest). Dans l’éditeur de manifeste de Visual Studio, vous trouverez cette option sous l’onglet Capacités, sous le nom Internet (client). Si cette fonctionnalité n’est pas déclarée pour l’application, Windows n’interrogera pas votre service.
- Assurez-vous que les valeurs définies par les en-têtes X-WNS-Tag et X-WNS-Expires sont mises en forme correctement. L’en-tête X-WNS-Expires doit avoir l’un des formats suivants :
- Dim 06 nov 1994 08:49:37 GMT
- Dimanche 06 nov 94 08:49:37 GMT
- Dim 6 nov 08:49:37 1994
Les mises à jour périodiques sont différées.
- Windows peut différer l’interrogation de votre URL d’un maximum de 15 minutes, si nécessaire, afin d’optimiser la puissance et les performances.
- Votre service n’était pas disponible au moment où l’URL a été contactée. Si le service n’est pas disponible, il ne sera recontacté qu’à l’intervalle d’interrogation suivant.
Résolution des problèmes liés aux notifications Push
Cette section répertorie un certain nombre d’erreurs courantes commises durant l’utilisation des notifications Push.
- Vérifier vos journaux d’événements
- La notification Push reçoit une réponse « 200 OK », mais ne s’affiche pas.
- La notification Push renvoie un code différent de « 200 OK »
- Erreurs durant la tentative de création d’un canal de notification Push
Vérifier vos journaux d’événements
Si aucune notification par vignette ou Push par toast ne s’affiche comme prévu, examinez les journaux d’événements.
- Si la notification est reçue mais ne s’affiche pas : lancez l’Observateur d’événements et examinez le journal Microsoft-Windows-TWinUI/Operational sous Applications et services\Microsoft\Windows\Apps.
- Si la notification n’est reçue en aucune manière : lancez l’Observateur d’événements et examinez le journal Opérationnel sous Applications et services\Microsoft\Windows\PushNotifications-Platform.
La notification Push reçoit une réponse « 200 OK », mais ne s’affiche pas.
Si les services de notifications Push Windows renvoient une réponse « 200 OK », cela signifie qu’ils remettront la notification au client si celui-ci est en ligne. Si vous vous êtes assuré que le client était en ligne et que la notification ne s’affiche pas, effectuez la procédure suivante :
Cause : erreurs XML dans le contenu de la notification.
Solution: vérifiez la syntaxe de base et assurez-vous que votre XML est complet et correct. Voici un certain nombre d’erreurs courantes commises dans le contenu XML :
- Respect de la casse. Les noms de balises, les noms d’attributs et les valeurs d’attributs respectent tous la casse. Vérifiez que la casse de caractères de votre code XML est correcte.
- Un élément binding doit être fourni pour chaque format de vignette pris en charge. Vous devez fournir un élément binding pour chaque taille de vignette prise en charge dans chaque notification envoyée.
- Les chaînes de texte ne doivent contenir aucun caractère XML réservé. Par exemple, vous ne pouvez pas mettre en italique des chaînes de vignette ou de toast en incluant des balises <i> et </i>. Si vous prévoyez d’afficher les caractères littéraux « <i> », utilisez une séquence d’échappement correcte. Pour plus d’informations sur les séquences d’échappement dans le langage XML, voir Entités de caractères XML et XAML.
- La valeur fournie pour les attributs lang doit respecter la spécification ITEF BCP 47.
- Les chaînes XML envoyées dans des notifications Push doivent utiliser le codage UTF-8.
- Si vous incluez un élément image dans votre charge utile XML avec un attribut src non vide, n’oubliez pas d’inclure une référence à une image valide, sinon la notification sera ignorée.
Pour plus d’informations, voir la documentation concernant les schémas de vignettes, de toasts et de badges.
Cause : utilisation incorrecte des paramètres API de notification Push.
Résolution : consultez la document API dans l’espace de noms Windows.Networking.PushNotifications pour obtenir des informations détaillées.
Cause : le type d’en-tête ne correspond pas au contenu de la notification. Si l’en-tête X-WNS-Type n’est pas défini sur une valeur — tile, badge ou toast —correspondant au modèle de notification spécifié dans la charge utile, la notification ne s’affichera pas. Cette incompatibilité provoquera une erreur sur le client et la notification sera abandonnée.
Résolution : pour vous assurer que le serveur de votre application utilise la valeur correcte pour l’en-tête X-WNS-Type, consultez la rubrique En-têtes des demandes et des réponses du service de notifications Push.
Cause : la valeur de la durée de vie, définie dans l’en-tête X-WNS-TTL, est trop petite.
Résolution : fournissez une valeur de durée de vie supérieure, sachant que la valeur est définie en secondes.
Si, après avoir effectué les corrections ci-dessus, votre notification ne s’affiche toujours pas, recherchez d’autres suggestions pour résoudre les problèmes liés aux notifications locales dans la section Notification par vignette locale non affichée de cette rubrique.
La notification Push renvoie un code différent de « 200 OK »
Si les services de notifications Push Windows ne renvoient pas le code « 200 OK », la notification ne sera pas remise au client. Si, la valeur 400 figure dans le code de retour, vous devriez, en tant que développeur, être capable de résoudre le problème. Pour plus d’informations sur la signification des codes spécifiques, voir Référence des codes de réponse WNS. Pour obtenir un exemple de code illustrant comment intercepter et gérer ces erreurs, voir Démarrage rapide : envoi d’une notification toast ou télécharger l’Exemple de notifications Push et périodiques.
Remarque Pour plus d’informations sur les erreurs non mentionnées ici, voir COM Error Codes (WPN, MBN, P2P, Bluetooth).
- La demande de notification a renvoyé le code « 400 Requête incorrecte ».
- La demande de notification a renvoyé le code « 401 Non autorisé ».
- La demande de notification a renvoyé le code « 401 Non autorisé », le jeton a expiré.
- La demande de notification a renvoyé le code « 403 Interdit ».
- La demande de notification a renvoyé le code « 404 Introuvable ».
- La demande de notification a renvoyé le code « 406 Non acceptable ».
- La demande de notification a renvoyé le code « 410 Supprimé ».
La demande de notification a renvoyé le code « 400 Requête incorrecte ».
Cause : il est possible que l’utilisation d’un ou de plusieurs en-têtes WNS soit incorrecte ou que la demande HTTP ne soit pas valide.
Résolution : pour vous assurer que le serveur de votre application utilise tous les en-têtes personnalisés de façon appropriée, consultez la rubrique En-têtes des demandes et des réponses du service de notifications Push.
La demande de notification a renvoyé le code « 401 Non autorisé ».
Cause : le serveur de votre application doit utiliser l’identificateur de sécurité de package (PSID, Package Security Identifier) et la clé secrète qui vous ont été fournis lors de l’inscription de l’application. Si vous avez récemment modifié votre clé secrète dans le Tableau de bord du Windows Store, vous devez également mettre à jour votre serveur d’applications. Pour plus d’informations, voir Vue d’ensemble des notifications Push.
Résolution : pour vérifier votre identificateur de sécurité de package et votre secret, consultez le Tableau de bord du Windows Store.
La demande de notification a renvoyé le code « 401 Non autorisé », le jeton a expiré.
Cause : un jeton d’accès a une durée de vie limitée. Si vous envoyez une notification avec un jeton d’accès arrivé à expiration, les informations d’identification du serveur de votre application ne sont pas valides et la notification ne peut pas être envoyée.
Résolution : demandez aux services de notifications Push Windows un nouveau jeton d’accès en vous identifiant à l’aide de votre identificateur de sécurité de package (PSID) et de votre clé secrète. Pour plus d’informations, voir Vue d’ensemble des services de notifications Push Windows (WNS).
La demande de notification a renvoyé le code « 403 Interdit ».
Cause : cette erreur se produit lorsque le jeton d’accès que vous avez présenté ne correspond pas aux informations d’identification requises pour envoyer les notifications à l’URL de canal correspondante. Chaque application doit être inscrite auprès du Windows Store pour recevoir des informations d’identification pour son serveur. Pour chaque application, seules les informations d’identification fournies par le Windows Store peuvent être utilisées pour envoyer des notifications à cette application et uniquement à elle.
Résolution : connectez-vous au Tableau de bord du Windows Store avec votre compte de développeur. Sélectionnez votre application et cliquez sur « Fonctionnalités avancées » -> « Gérer vos paramètres de service cloud ». Sélectionnez « Identification de votre application » pour lire les instructions pour mettre à jour le manifeste de votre application afin qu’il corresponde aux informations d’identification de votre service cloud.
La demande de notification a renvoyé le code « 404 Introuvable ».
Cause : cette erreur signifie généralement que le format de l’URL de canal est incorrect. Lorsque vous envoyez une notification aux services WNS, l’URL de canal ne doit être ni falsifiée ni modifiée. Elle doit toujours être considérée comme une chaîne opaque — vous n’êtes censé ni vérifier ni même connaître son contenu.
Résolution : assurez-vous que votre code n’a pas modifié l’URL de canal, en changeant un ou plusieurs de ses caractères ou en changeant son codage.
La demande de notification a renvoyé le code « 406 Non acceptable ».
Cause : les services WNS intègrent des stratégies de protection pour empêcher les applications malveillantes d’affecter de façon négative les autres utilisateurs et développeurs. L’envoi d’un nombre excessif de notifications dans une période de temps trop courte peut entraîner l’abandon explicite des notifications par les services WNS.
Résolution : vérifiez la fréquence d’envoi de vos notifications pour déterminer s’il est possible de la diminuer ou de l’optimiser pour améliorer l’expérience utilisateur.
La demande de notification a renvoyé le code « 410 Supprimé ».
Cause : l’URL de canal est arrivée à expiration. Vous ne pouvez plus envoyer de notifications tant que votre application n’a pas demandé une nouvelle URL de canal.
Résolution : votre application du Windows Store doit toujours demander une URL de canal à son lancement. Il n’est pas garanti que l’URL de canal qui est affectée reste la même. Si l’URL a changé, le client doit mettre à jour l’information sur son serveur cloud. Pour plus d’informations, voir Comment demander, créer et enregistrer un canal de notification.
Erreurs durant la tentative de création d’un canal de notification Push
- La création d’un canal de notification génère une erreur ERROR_NO_NETWORK.
- La création d’un canal de notification génère une erreur WPN_E_CLOUD_INCAPABLE.
- La création d’un canal de notification génère une erreur WPN_E_INVALID_APP
Remarque Pour plus d’informations sur les erreurs non mentionnées ici, voir COM Error Codes (WPN, MBN, P2P, Bluetooth).
La création d’un canal de notification génère une erreur ERROR_NO_NETWORK.
Cause : pour créer un canal de notification, les services WNS exigent une connexion Internet.
Résolution : vérifiez votre connectivité Internet.
La création d’un canal de notification génère une erreur WPN_E_CLOUD_INCAPABLE.
Cause : votre application n’a pas déclaré la fonctionnalité Internet dans son manifeste (package.appxmanifest).
Résolution : assurez-vous que le manifeste de votre application a déclaré la fonctionnalité Internet. Dans l’éditeur de manifeste de Visual Studio, vous trouverez cette option sous l’onglet Capacités, sous le nom Internet (client). Pour plus d’informations, voir Capabilities.
La création d’un canal de notification génère une erreur WPN_E_INVALID_APP
Cause : votre application doit utiliser un nom de package valide. Si vous n’en avez pas encore reçu, vous pouvez en obtenir un sur le portail du Windows Store sous « Fonctionnalités avancées ».
Résolution : pour savoir comment récupérer un identificateur de sécurité de package (PSID) pour votre application du Windows Store, voir Comment s’authentifier auprès des services de notifications Push Windows (WNS).
Résolution des problèmes liés aux notifications toast
Cette section répertorie un certain nombre d’erreurs courantes commises durant l’utilisation des toasts et des modèles de toast. La grande majorité des étapes de dépannage utilisées pour les notifications toast sont identiques à celles des notifications par vignette. Sauf indication contraire, chaque solution s’applique à tous les types de remises de notifications, qu’elles soient locales, planifiées ou Push.
Notification toast locale non affichée
Le problème le plus courant dans cette situation tient au fait que le code XML utilisé pour définir votre notification est incorrect d’une façon ou d’une autre. Il peut toutefois y avoir d’autres causes, que les vérifications suivantes vous permettent d’envisager :
- Vérifier les paramètres utilisateur
- Vérifier les entrées du manifeste de l’application
- Vérifier la taille de vos images
- Vérifier vos URL
- Examiner vos formats d’images
- Vérifier votre syntaxe XML
- Vérifier le délai d’expiration de votre notification
Vérifier les paramètres utilisateur
Cause possible : l’utilisateur ou l’administrateur a désactivé les notifications via les paramètres. Vérifiez le commutateur global d’activation/de désactivation des notifications et les commutateurs individuels d’activation/de désactivation des notifications dans la page Paramètres du PC ->Notifications. Côté administrateur, il existe plusieurs stratégies de groupe qui permettent de désactiver les notifications. Vérifiez auprès de votre administrateur que les notifications sont activées.
Résolution : activez les notifications via les paramètres ou demandez à un administrateur d’activer les notifications via la stratégie de groupe.
Pour plus d’informations, voir Démarrage rapide : envoi d’une notification toast.
Vérifier les entrées du manifeste de l’application
Cause possible : les informations définies dans le manifeste de l’application n’étaient pas correctes pour activer la remise des toasts. Assurez-vous que le paramètre « Compatible toast » dans le manifeste de l’application est défini sur « Oui ». Si un contenu de notification, tel qu’une image, est récupéré d’Internet, assurez-vous que la fonctionnalité « Internet (client) » est déclarée dans le manifeste de l’application.
Résolution : activez les entrées spécifiques aux notifications dans le manifeste de l’application.
Pour plus d’informations, voir Démarrage rapide : création d’une vignette par défaut à l’aide de l’éditeur de manifeste de Visual Studio.
Vérifier la taille de vos images
Cause possible : les images de toutes les notifications doivent être inférieures à 1024 x 1024 pixels et à 200 Ko. Si une image dans une notification excède ces valeurs, la notification sera rejetée.
Résolution : réduisez vos images.
Pour plus d’informations, voir Tailles des images de vignette et de toast.
Vérifier vos URL
Cause possible : erreurs de syntaxe de l’URL.
Dans les notifications, les images sont fournies à titre de référence de ressource ou de chemin d’accès littéral. Si un chemin d’accès est utilisé, il peut être indiqué selon l’un de ces trois protocoles :
Préfixe | Utilisation | Remarques |
---|---|---|
http:// et https:// | Images stockées en ligne | Ces images peuvent être mises en cache localement, ainsi votre serveur d’images ne reçoit pas forcément de demande pour l’image. Les chaînes de recherche sont ajoutées à ces URL. Assurez-vous que votre serveur Web retourne l’image originale plutôt qu’une erreur 404 si vous choisissez d’ignorer la chaîne de recherche. Exemple de chaîne de recherche : ?scale=100&contrast=blk&lang=en-US Notez que pour récupérer le contenu d’une notification à partir d’Internet, votre application doit déclarer la fonctionnalité « Internet (Client) » dans le manifeste de son application. |
ms-appx:/// | Images incluses dans le package de votre application | L’URI accepte une barre oblique (/) ou une barre oblique inversée (\) pour séparer les dossiers dans un chemin d’accès, mais la plupart des langages de programmation imposent que vous utilisiez un caractère d’échappement quand vous spécifiez une barre oblique inversée (\\). Notez que cette référence nécessite trois barres obliques après les deux-points. |
ms-appdata:///local/ | Images enregistrées localement par votre application | Cet emplacement correspond au dossier retourné par Windows.Storage.ApplicationData.current.localFolder. Les séparateurs de dossiers dans le chemin doivent utiliser des caractères d’échappement (\\). Notez que cette référence nécessite trois barres obliques après les deux-points. |
Remarque Le caractère « / » fonctionne comme un séparateur dans chaque type de spécification. Nous vous avons recommandé d’utiliser systématiquement « / » au lieu de « \ » afin d’éviter toute confusion avec les caractères d’échappement.
Exemples de formats d’URL corrects :
URL |
---|
https://www.contoso.com/icon.jpg |
ms-appx:///images/icon.png |
ms-appdata:///local/myDrawing.jpg |
Exemples de formats d’URL incorrects :
URL | Remarques |
---|---|
https://www.contoso.com\fail.png | Un chemin d’accès HTTP doit utiliser le caractère /. N’utilisez pas le caractère \. |
http:www.contoso.com | Un chemin d’accès HTTP exige une double barre oblique (//) après les deux-points. |
"ms-appdata:///local/c:\\images\\Drawing.jpg" | Une application ne peut pas faire référence à des images situées en dehors de son emplacement de stockage local. |
"ms-appx://images/triangle.png" | Utilisez trois barres obliques au lieu de deux avec « ms-appx: ». |
Examiner vos formats d’images
Cause possible : le format des images n’est pas pris en charge.
Les notifications peuvent uniquement utiliser des images au format .png, .jpg/.jpeg ou .gif. Le format de l’image doit également correspondre à son extension. Le simple changement de nom d’un type de fichier non pris en charge via l’ajout d’une extension prise en charge ne suffit pas.
Les erreurs de formats d’images sont le plus souvent dues à la sérialisation des images bitmap dans l’emplacement de stockage Windows.Storage.ApplicationData.current.localFolder. Assurez-vous de choisir le format que vous souhaitez, sinon l’image sera stockée au format bitmap Windows et son en-tête comprendra « BMP ».
Vérification : pour contrôler le format de votre image, chargez-la dans un programme de traitement d’image et enregistrez-la au format .jpg. Si vous faites référence à ce nouveau fichier .jpg dans votre notification et que l’erreur ne se reproduit pas, il s’agissait probablement d’une erreur de format d’image. Vous pouvez également ouvrir le fichier dans l’éditeur binaire Visual Studio et examiner son en-tête.
Résolution : modifiez ou corrigez le format de vos images.
Vérifier votre contenu et votre syntaxe XML
Cause possible : erreurs de syntaxe XML ou de validation.
Outre la syntaxe de base, assurez-vous que votre XML est complet et correct. Voici un certain nombre d’erreurs courantes commises dans le contenu XML :
- Respect de la casse. Les noms de balises, les noms d’attributs et les valeurs d’attributs respectent tous la casse. Vérifiez que la casse de caractères de votre code XML est correcte.
- Les chaînes de texte ne doivent contenir aucun caractère XML réservé. Par exemple, vous ne pouvez pas mettre une chaîne dans un toast en italique en incluant des balises <i> et </i>. Si vous prévoyez d’afficher les caractères littéraux « <i> », utilisez une séquence d’échappement correcte. Pour plus d’informations sur les séquences d’échappement dans le langage XML, voir Entités de caractères XML et XAML.
- La valeur fournie pour les attributs lang doit respecter la spécification ITEF BCP 47.
- Les chaînes XML créées localement (pour les notifications locales ou planifiées) doivent utiliser le codage UTF-16. Lorsque les chaînes sont envoyées par notifications Push ou interrogées à partir d’une URL, elles doivent utiliser le codage UTF-8.
- Si vous incluez un élément image à votre charge utile XML avec un attribut src non vide, n’oubliez pas d’inclure une référence vers une image valide, sinon la notification échouera.
Si votre notification toast ne s’affiche pas, vous pouvez utiliser le Journal des événements pour vérifier les erreurs. Recherchez les événements relatifs à votre notification toast dans l’Observateur d’événements, sous Journaux des applications et des services > Microsoft > Windows > Apps > Microsoft-Windows-TWinUI > Operational.
Vérification : utilisez un vérificateur de syntaxe XML, tel que l’éditeur Visual Studio, pour rechercher des erreurs de syntaxe de base. Consultez la référence de modèle appropriée (ToastTemplateType) pour vérifier que les éléments que vous associez sont corrects.
Résolution : modifiez votre code XML ou utilisez un autre modèle qui corresponde à votre contenu.
Vérifier que votre notification n’est pas arrivée à expiration
Cause possible : la valeur de délai d’expiration est trop faible.
Si vous définissez le délai d’expiration dans votre notification via la méthode expirationTime (pour une notification locale) ou le champ d’en-tête X-WNS-TTL (dans une notification Push), gardez à l’esprit que les valeurs représentent des millisecondes. Par exemple, si vous souhaitez qu’une notification toast dure exactement une heure la valeur doit être 60 * 60 * 1000 = 3600000.
Résolution : utilisez une valeur plus importante.
Pour signaler un problème
Si vous avez essayé les solutions suggérées dans cette rubrique et si cela ne résout pas votre problème, publiez un message sur les forums Microsoft afin d’en discuter avec les développeurs Microsoft et les autres intervenants intéressés.
Pour les notifications Push, outre la description du problème, vous pourrez être invité à fournir votre URL de canal et un exemple de la réponse que vous avez reçue des services WNS avec les codes d’erreur HTTP et les en-têtes HTTP. En effet, durant le signalement d’un problème, le serveur de votre application doit enregistrer des en-têtes spécifiques. Pour plus d’informations, voir En-têtes des demandes et des réponses du service de notifications Push.
Rubriques associées
Exemple de vignettes et de badges d’application
Exemple de notifications planifiées
Exemple de notifications toast
Exemple de notifications Push et périodiques
Démarrage rapide : envoi d’une mise à jour de vignette
Démarrage rapide : envoi d’une mise à jour de badge
Démarrage rapide : affichage des notifications sur l’écran de verrouillage
Démarrage rapide : configuration de notifications périodiques
Catalogue de modèles de vignette
Comment planifier une notification par vignette
Comment utiliser la file d’attente de notifications avec des notifications locales
Vue d’ensemble des vignettes et des notifications par vignette
Vue d’ensemble des écrans de verrouillage
File d’attente des notifications