Travailler avec les notifications d’impression dans une application UWP pour appareil
Dans Windows 8.1, les applications UWP pour appareils peuvent répondre aux événements de communication bidirectionnelle (Bidi) envoyés par un pilote d’impression v4. Cette rubrique présente les notifications d’impression, et montre comment la version C# de l’exemple des paramètres d’impression et des notifications d’impression utilise une tâche d’arrière-plan pour répondre aux notifications d’impression. La tâche en arrière-plan montre comment enregistrer les détails des notifications dans le magasin de données local de l’application, envoyer des notifications toast, et mettre à jour une vignette et un badge. Pour en savoir plus sur les applications d’appareils UWP en général, veuillez consulter la rubrique Découverte des applications d’appareils UWP.
La version C# de l’exemple Paramètres d’impression et notifications démontre la partie d’arrière-plan de l’application (la tâche d’arrière-plan) dans le projet BackgroundTask. Le code pour la tâche d’arrière-plan se trouve dans le fichier PrintBackgroundTask.cs. L’application d’avant-plan, l’application en plein écran qui peut être lancée depuis le menu Démarrer, se trouve dans le projet DeviceAppForPrinters. Le fichier InkLevel.xaml.cs montre une manière d’accéder aux détails de la notification depuis l’application d’avant-plan. Pour travailler avec les notifications d’impression, l’exemple utilise la bibliothèque d’extension d’imprimante dans le projet PrinterExtensionLibrary. La bibliothèque d’extension d’imprimante offre un moyen pratique d’accéder aux interfaces d’extension d’imprimante du pilote d’impression v4. Pour plus d’informations, veuillez consulter l’aperçu de la bibliothèque d’extension d’imprimante.
Les exemples de code présentés dans ce sujet sont basés sur la version C# de l’exemple Paramètres d’impression et notifications d’impression. Cet exemple est également disponible en JavaScript et C++. Notez que comme C++ peut accéder directement à COM, la version C++ de l’exemple n’inclut pas de projets de bibliothèque de code. Téléchargez les exemples pour voir les dernières versions du code.
Notifications d’impression
Les notifications d’impression permettent à votre application UWP pour appareil d’informer l’utilisateur d’événements importants de l’imprimante pendant l’impression, tels qu’un bourrage papier, une porte d’imprimante ouverte, des niveaux d’encre faibles ou des erreurs d’imprimante sans papier. Lorsqu’une imprimante déclenche une notification, le courtier d’événements système exécute la tâche d’arrière-plan de votre application. À partir de là, la tâche d’arrière-plan peut sauvegarder les détails de la notification, envoyer un toast, mettre à jour une vignette, mettre à jour un badge, ou ne rien faire. En sauvegardant les détails de la notification, votre application peut fournir une expérience qui aide les utilisateurs à comprendre et à résoudre leurs problèmes d’imprimante.
Les fabricants d’imprimantes doivent implémenter Bidi et le fichier XML DriverEvent dans leur pilote d’impression v4 pour utiliser les notifications d’impression avec leurs applications UWP pour appareil. Pour plus d’informations, veuillez consulter la section Communications Bidirectionnelles.
Lorsqu’un DriverEvent se produit, et que la tâche d’arrière-plan d’une application UWP pour appareil est démarrée, l’application a plusieurs options sur la manière de procéder. Pour plus de détails sur le flux qui mène au lancement de la tâche, veuillez consulter la section Prise en charge du pilote pour l’UI personnalisée.
La tâche d’arrière-plan peut choisir de :
Ne rien faire
Sauvegarder les détails de la notification dans le magasin de données d’application local
Mettre à jour une vignette de notification d’application UWP
Mettre à jour un badge de notification d’application UWP
Envoyer une notification toast d’application UWP
La vignette de notification ou le toast peuvent permettre à l’utilisateur de lancer commodément votre application d’avant-plan. Lorsque l’application d’avant-plan est lancée, elle peut utiliser la méthode OnLaunched
dans App.xaml.cs pour vérifier si elle a été lancée par une vignette ou un toast. Si c’est le cas, l’application d’avant-plan peut accéder à tous les détails de la notification d’impression dans le magasin de données d’application local.
Prérequis
Avant de commencer :
Assurez-vous que votre imprimante est installée avec un pilote d’impression v4. Pour plus d’informations, veuillez consulter la section Développement de pilotes d’impression v4.
Préparez votre PC de développement. Veuillez consulter la section Bien démarrer pour obtenir des informations sur le téléchargement des outils et la création d’un compte développeur.
Associez votre application au magasin. Consultez la section Créer une application UWP pour périphérique pour obtenir des informations à ce sujet.
Créez des métadonnées de périphérique pour votre imprimante qui l’associent à votre application. Veuillez consulter la section Créer des métadonnées de périphérique pour plus d’informations à ce sujet.
Construisez l’interface utilisateur pour la page principale de votre application. Toutes les applications UWP pour périphériques peuvent être lancées à partir de Start, où elles seront affichées en plein écran. Utilisez l’expérience Start pour mettre en valeur votre produit ou services d’une manière qui correspond à la marque spécifique et aux caractéristiques de vos appareils. Il n’y a pas de restrictions spéciales sur le type de contrôles UI qu’elle peut utiliser. Pour bien démarrer avec la conception de l’expérience plein écran, consultez les principes de conception de Microsoft Store.
Si vous écrivez votre application en C# ou JavaScript, ajoutez les projets PrinterExtensionLibrary et DeviceAppForPrintersLibrary à la solution de votre application UWP pour périphérique. Vous pouvez trouver chacun de ces projets dans l’exemple Paramètres d’impression et notifications d’impression.
Comme C++ peut accéder directement à COM, les applications C++ n’ont pas besoin d’une bibliothèque séparée pour travailler avec le contexte de périphérique d’imprimante basé sur COM.
Étape 1 : Enregistrer la tâche d’arrière-plan
Pour que Windows reconnaisse que l’application peut gérer les notifications d’impression, elle doit enregistrer une extension de tâches d’arrière-plan pour les notifications d’impression. Cette extension est déclarée dans un élément Extension
, avec un attribut Category
paramétré sur windows.backgroundTasks
et un attribut EntryPoint
paramétré sur BackgroundTask.PrintBackgroundTask
. L’extension inclut également un élément Task
pour indiquer qu’elle prend en charge les types de tâches systemEvent
.
Vous pouvez ajouter l’extension de tâche d’arrière-plan d’impression dans l’onglet Déclarations du Concepteur de manifeste dans Microsoft Visual Studio. Vous pouvez également modifier manuellement le manifeste du package d’application XML, en utilisant l’éditeur XML (Texte). Faites un clic droit sur le fichier Package.appxmanifest dans L’Explorateur de solutions pour accéder aux options de modification.
Cet exemple montre l’extension de tâche d’arrière-plan dans l’élément Extension
, tel qu’il apparaît dans le fichier de manifeste de package d’application, Package.appxmanifest.
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest">
<Identity Name="Microsoft.SDKSamples.DeviceAppForPrinters.CS" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" Version="1.0.0.0" />
<Properties>
<DisplayName>Device App For Printers C# sample</DisplayName>
<PublisherDisplayName>Microsoft Corporation</PublisherDisplayName>
<Logo>Assets\storeLogo-sdk.png</Logo>
</Properties>
<Prerequisites>
<OSMinVersion>6.3.0</OSMinVersion>
<OSMaxVersionTested>6.3.0</OSMaxVersionTested>
</Prerequisites>
<Resources>
<Resource Language="x-generate" />
</Resources>
<Applications>
<Application Id="DeviceAppForPrinters" Executable="$targetnametoken$.exe" EntryPoint="DeviceAppForPrinters.App">
<VisualElements DisplayName="Device App For Printers C# sample" Logo="Assets\squareTile-sdk.png"
SmallLogo="Assets\smallTile-sdk.png" Description="DeviceAppForPrinters C# sample"
ForegroundText="light" BackgroundColor="#00b2f0" ToastCapable="true">
<DefaultTile ShowName="allLogos" ShortName="App4PrinterCS" WideLogo="Assets\tile-sdk.png" />
<SplashScreen Image="Assets\splash-sdk.png" BackgroundColor="#00b2f0" />
</VisualElements>
<Extensions>
<Extension Category="windows.backgroundTasks" EntryPoint="BackgroundTask.PrintBackgroundTask">
<BackgroundTasks>
<Task Type="systemEvent" />
</BackgroundTasks>
</Extension>
<Extension Category="windows.printTaskSettings" Executable="$targetnametoken$.exe" EntryPoint="DeviceAppForPrinters.App" />
</Extensions>
</Application>
</Applications>
</Package>
Étape 2 : Configurer les métadonnées de l’appareil
Lorsque vous utilisez l’Assistant de création de métadonnées d’appareil pour associer votre application à votre appareil, assurez-vous de compléter la boîte Gestionnaires de notifications sur la page Spécifier les informations d’application UWP pour appareil. Cela aide à garantir que la tâche d’arrière-plan de votre application est appelée lors d’une notification d’impression.
Pour des instructions étape par étape sur comment éditer vos métadonnées d’appareil, veuillez consulter la section Test.
Étape 3 : Développez l’interface utilisateur
Avant de construire votre application, vous devriez travailler avec vos designers et votre équipe marketing pour concevoir l’expérience utilisateur. L’expérience utilisateur devrait projeter les aspects de branding de votre entreprise et vous aider à établir une connexion avec vos utilisateurs.
Recommandations en matière de conception
Il est important de consulter les directives des applications du Microsoft Store avant de concevoir votre expérience de vignette et de badge. Les directives aident à garantir que votre application offre une expérience intuitive qui est cohérente avec d’autres applications UWP.
Pour la page principale de votre application, gardez à l’esprit que Windows 8.1 peut afficher plusieurs applications dans différentes tailles sur un seul écran. Consultez les directives suivantes pour en savoir plus sur la manière dont votre application peut s’adapter de manière transparente entre les tailles d’écran, les tailles de fenêtre et les orientations.
Directives pour les tailles de fenêtre et l’adaptation à l’écran
Directives pour le redimensionnement des fenêtres pour des mises en page hautes et étroites
Bonnes pratiques
Ne pas inclure de mots d’action dans les notifications. Dans le message de notification, ne pas utiliser de texte qui dit aux utilisateurs d’appuyer ou de cliquer sur la notification. Les utilisateurs comprennent déjà qu’ils peuvent cliquer sur un toast pour obtenir plus d’informations. Par exemple, écrivez simplement « Le niveau d’encre de votre imprimante est faible » au lieu de « Le niveau d’encre de votre imprimante est faible Cliquez ici pour résoudre le problème ».
Simplifiez les interactions. Tout ce qui est montré sur l’expérience de notification doit être en rapport avec la notification. Par exemple, une page de notification concernant un bourrage papier ne doit contenir que des liens et des informations concernant la résolution de ce problème. Elle ne doit pas contenir de liens vers des expériences sans rapport direct comme l’achat d’encre ou d’autres informations de support.
Utilisez le multimédia. Utilisez des photos, des vidéos ou des illustrations réelles de l’appareil pour aider les utilisateurs à résoudre rapidement un problème avec leur appareil.
Gardez les utilisateurs dans le contexte de votre application. Lors de la fourniture d’informations sur un problème, ne liez pas à des supports en ligne ou autres. Gardez l’utilisateur dans le contexte de l’application.
Étape 4 : Créer une tâche d’arrière-plan
Si votre application enregistre une tâche d’arrière-plan pour les notifications d’impression, elle doit fournir un gestionnaire pour l’activation de la tâche d’arrière-plan. Dans l’exemple Paramètres d’impression et notifications d’impression, la classe PrintBackgroundTask
gère les notifications d’impression.
Si l’état de votre imprimante ne nécessite pas une intervention immédiate de l’utilisateur, mettez à jour une vignette plutôt que d’afficher un toast. Par exemple, pour une condition de niveau d’encre faible, une mise à jour de la vignette est suffisante. Mais si l’imprimante est complètement à court d’encre, l’application peut afficher une notification toast.
Sauvegarde des détails de la notification
La tâche d’arrière-plan ne peut pas lancer directement l’application de premier plan, seul l’utilisateur le peut : depuis une vignette, un toast, ou Démarrer. Ainsi, pour garantir que l’application d’avant-plan peut accéder aux détails de la notification d’impression, la tâche d’arrière-plan les sauvegarde dans le stockage local. Pour plus d’informations sur l’utilisation du stockage local, veuillez consulter la section Démarrage rapide : données d’application locale.
Lorsqu’une notification d’impression est déclenchée, Windows exécute la tâche d’arrière-plan en appelant sa méthode Run
. Les données de notification sont transmises à la tâche d’arrière-plan via un paramètre de méthode qui doit être converti en type Windows.Devices.Printers.Extensions.PrintNotificationEventDetails. Les propriétés PrinterName
et EventData
de cet objet contiennent respectivement le nom de l’imprimante et le message Bidi.
Cet exemple montre la méthode Run
de la tâche d’arrière-plan, dans le fichier PrintBackgroundTask.cs, où les détails de la notification d’impression sont sauvegardés dans les paramètres de l’application avant l’appel des méthodes toast, vignette et badge.
public void Run(Windows.ApplicationModel.Background.IBackgroundTaskInstance taskInstance)
{
// Save notification details to local storage
PrintNotificationEventDetails details = (PrintNotificationEventDetails)taskInstance.TriggerDetails;
settings.Values[keyPrinterName] = details.PrinterName;
settings.Values[keyAsyncUIXML] = details.EventData;
// Demonstrate possible actions
ShowToast(details.PrinterName, details.EventData);
UpdateTile(details.PrinterName, details.EventData);
UpdateBadge();
}
Mise à jour d’une vignette
Lorsque les détails de la notification d’impression sont envoyés à la méthode UpdateTile
, la tâche d’arrière-plan de l’exemple montre comment les afficher sur une vignette. Pour plus d’informations sur les vignettes, veuillez consulter la section Vue d’ensemble des vignettes et des vignettes de notification.
Cet exemple montre la méthode UpdateTile
de la tâche d’arrière-plan, dans le fichier PrintBackgroundTask.cs.
void UpdateTile(string printerName, string bidiMessage)
{
TileUpdater tileUpdater = TileUpdateManager.CreateTileUpdaterForApplication();
tileUpdater.Clear();
XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150Text09);
XmlNodeList tileTextAttributes = tileXml.GetElementsByTagName("text");
tileTextAttributes[0].InnerText = printerName;
tileTextAttributes[1].InnerText = bidiMessage;
TileNotification tileNotification = new TileNotification(tileXml);
tileNotification.Tag = "tag01";
tileUpdater.Update(tileNotification);
}
Mise à jour d’un badge
La méthode UpdateBadge
montre comment utiliser la classe BadgeNotification pour mettre à jour un badge. Pour plus d’informations sur les vignettes, consultez la section Vue d’ensemble des badges.
Cet exemple montre la méthode UpdateBadge
de la tâche d’arrière-plan, dans le fichier PrintBackgroundTask.cs.
void UpdateBadge()
{
XmlDocument badgeXml = BadgeUpdateManager.GetTemplateContent(BadgeTemplateType.BadgeGlyph);
XmlElement badgeElement = (XmlElement)badgeXml.SelectSingleNode("/badge");
badgeElement.SetAttribute("value", "error");
var badgeNotification = new BadgeNotification(badgeXml);
BadgeUpdateManager.CreateBadgeUpdaterForApplication().Update(badgeNotification);
}
Affichage d’un toast
Une notification toast est un message temporaire à l’utilisateur contenant des informations pertinentes et urgentes, et offrant un accès rapide au contenu associé dans une application. Les notifications toast doivent être présentées aux utilisateurs comme une invitation à revenir à votre application pour suivre quelque chose d’intéressant. Pour plus d’informations, veuillez consulter la section Vue d’ensemble des notifications toast.
Pour activer les notifications toast, la capacité d’afficher des toasts doit être listée dans le manifeste de package de l’application. Dans l’élément VisualElements
, réglez l’attribut ToastCapable
sur True.
Important
Nous ne recommandons pas de toujours afficher un toast, en particulier pour des événements non-actionnables. Cela peut devenir agaçant pour les utilisateurs et les amener à désactiver tous les toasts d’une application. Pour les événements qui ne nécessitent pas une attention immédiate de l’utilisateur, nous recommandons de mettre à jour uniquement la vignette et le badge, sans afficher de toast.
Cet exemple montre l’attribut ToastCapable
dans l’élément VisualElements
, tel qu’il apparaît dans le fichier de manifeste de package de l’application, Package.appxmanifest.
<VisualElements DisplayName="Device App For Printers C# sample" Logo="Assets\squareTile-sdk.png"
SmallLogo="Assets\smallTile-sdk.png" Description="DeviceAppForPrinters C# sample"
ForegroundText="light" BackgroundColor="#00b2f0" ToastCapable="true">
<DefaultTile ShowName="allLogos" ShortName="App4PrinterCS" WideLogo="Assets\tile-sdk.png" />
<SplashScreen Image="Assets\splash-sdk.png" BackgroundColor="#00b2f0" />
</VisualElements>
Cet exemple provient de la méthode ShowToast
du fichier PrintBackgroundTask.cs. Il montre comment afficher un toast basé sur deux chaînes, nommées title
et body
.
void ShowToast(string title, string body)
{
//
// Get Toast template
//
XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText02);
//
// Pass to app as eventArgs.detail.arguments
//
((XmlElement)toastXml.SelectSingleNode("/toast")).SetAttribute("launch", title);
//
// The ToastText02 template has 2 text nodes (a header and a body)
// Assign title to the first one, and body to the second one
//
XmlNodeList textList = toastXml.GetElementsByTagName("text");
textList[0].AppendChild(toastXml.CreateTextNode(title));
textList[1].AppendChild(toastXml.CreateTextNode(body));
//
// Show the Toast
//
ToastNotification toast = new ToastNotification(toastXml);
ToastNotificationManager.CreateToastNotifier().Show(toast);
}
Étape 5 : Gérer l’activation
Après qu’une notification d’impression ait déclenché la tâche d’arrière-plan, l’application peut être lancée en tapotant une notification toast ou une vignette. Si votre application est activée à partir de l’une ou l’autre, un paramètre sera passé à l’application via LaunchActivatedEventArgs.arguments
. Pour plus d’informations sur l’activation et le cycle de vie des applications du Microsoft Store, veuillez consulter la section Cycle de vie de l’application.
Pour déterminer si votre application a été activée dans l’un de ces cas, gérez l’événement OnLaunched
, et examinez les arguments d’événement passés au gestionnaire d’événements. Si les arguments d’événement sont Null, l’application a été activée par l’utilisateur depuis Démarrer. Si les arguments d’événement ne sont pas Null, l’application a été lancée à partir d’un toast ou d’une vignette.
Cet exemple provient de la méthode OnLaunched
du fichier App.xaml.cs. Il montre comment gérer l’activation à partir de toasts ou de vignettes.
protected override async void OnLaunched(LaunchActivatedEventArgs args)
{
Frame rootFrame = Window.Current.Content as Frame;
// Do not repeat app initialization when the Window already has content,
// just ensure that the window is active
if (rootFrame == null)
{
// Create a Frame to act as the navigation context and navigate to the first page
rootFrame = new Frame();
// Associate the frame with a SuspensionManager key
SuspensionManager.RegisterFrame(rootFrame, "AppFrame");
if (args.PreviousExecutionState == ApplicationExecutionState.Terminated)
{
// Restore the saved session state only when appropriate
try
{
await SuspensionManager.RestoreAsync();
}
catch (SuspensionManagerException)
{
//Something went wrong restoring state.
//Assume there is no state and continue
}
}
// Place the frame in the current Window
Window.Current.Content = rootFrame;
}
if (rootFrame.Content == null || !String.IsNullOrEmpty(args.Arguments))
{
// When the navigation stack isn't restored or there are launch arguments
// indicating an alternate launch (e.g.: via toast or secondary tile),
// navigate to the appropriate page, configuring the new page by passing required
// information as a navigation parameter
if (!rootFrame.Navigate(typeof(MainPage), args.Arguments))
{
throw new Exception("Failed to create initial page");
}
}
// Ensure the current window is active
Window.Current.Activate();
}
Étape 6 : Accéder aux détails de la notification
Étant donné que la tâche d’arrière-plan ne peut pas lancer directement l’application d’avant-plan, les détails de la notification d’impression doivent être sauvegardés dans les paramètres de l’application afin que l’application d’avant-plan puisse y accéder. Pour plus d’informations sur l’utilisation du stockage local, veuillez consulter la section Démarrage rapide : données d’application locale.
Cet exemple montre comment le nom de l’imprimante et le message Bidi sont récupérés à partir des paramètres de l’application dans l’exemple Paramètres d’impression et notifications d’impression. Le code provient de la méthode DisplayBackgroundTaskTriggerDetails
du fichier InkLevel.xaml.cs. Notez que les valeurs d’index de clé, keyPrinterName
et keyAsyncUIXML
, sont les mêmes constantes de chaîne utilisées dans la tâche d’arrière-plan, PrintBackgroundTask.cs.
void DisplayBackgroundTaskTriggerDetails()
{
String outputText = "\r\n";
try
{
string printerName = settings.Values[keyPrinterName].ToString();
outputText += ("Printer name from background task triggerDetails: " + printerName);
}
catch (Exception)
{
outputText += ("No printer name retrieved from background task triggerDetails ");
}
outputText += "\r\n";
try
{
string asyncUIXML = settings.Values[keyAsyncUIXML].ToString();
outputText += ("AsyncUI xml from background task triggerDetails: " + asyncUIXML);
}
catch (Exception)
{
outputText += ("No asyncUI xml retrieved from background task triggerDetails ");
}
ToastOutput.Text += outputText;
}
Test
Avant de pouvoir tester votre application UWP pour périphérique, elle doit être liée à votre imprimante à l’aide de métadonnées de périphérique.
Vous avez besoin d’une copie du package de métadonnées de périphérique pour votre imprimante, pour y ajouter les informations de l’application de périphérique. Si vous n’avez pas de métadonnées de périphérique, vous pouvez les construire en utilisant l’Assistant de création de métadonnées de périphérique comme décrit dans le sujet Créer des métadonnées de périphérique pour votre application UWP pour périphérique.
Pour utiliser l’Assistant de création de métadonnées de périphérique, vous devez installer Microsoft Visual Studio Professional, Microsoft Visual Studio Ultimate, ou le SDK autonome pour Windows 8.1, avant de compléter la procédure de cette rubrique. L’installation de Microsoft Visual Studio Express pour Windows installe une version du SDK qui n’inclut pas l’assistant.
Les étapes suivantes construisent votre application et installent les métadonnées de périphérique.
Activez la signature de test.
Lancez l’Assistant de création de métadonnées de périphérique depuis %ProgramFiles(x86)%\Windows Kits\8.1\bin\x86, en double-cliquant sur DeviceMetadataWizard.exe
Depuis le menu Outils, sélectionnez Activer la signature de test.
Redémarrez l’ordinateur
Construisez la solution en ouvrant le fichier de solution (.sln). Appuyez sur F7 ou allez dans Construire->Construire la solution depuis le menu supérieur après que l’exemple ait été chargé.
Déconnectez et désinstallez l’imprimante. Cette étape est nécessaire pour que Windows lise les métadonnées de périphérique mises à jour la prochaine fois que le périphérique est détecté.
Éditez et sauvegardez les métadonnées de périphérique. Pour lier l’application de périphérique à votre périphérique, vous devez associer l’application de périphérique à votre périphérique.
Si vous n’avez pas encore créé vos métadonnées de périphérique, consultez Créer des métadonnées de périphérique pour votre application UWP pour périphérique.
Si l’Assistant de création de métadonnées de périphérique n’est pas encore ouvert, lancez-le depuis %ProgramFiles(x86)%\Windows Kits\8.1\bin\x86, en double-cliquant sur DeviceMetadataWizard.exe.
Cliquez sur Éditer les métadonnées de périphérique. Cela vous permettra d’éditer votre package de métadonnées de périphérique existant.
Dans la boîte de dialogue Ouvrir, localisez le package de métadonnées de périphérique associé à votre application UWP pour périphérique. (Il a une extension de fichier devicemetadata-ms).
Sur la page Spécifier les informations de l’application UWP pour périphérique, saisissez les informations de l’application Microsoft Store dans la boîte Application UWP pour périphérique. Cliquez sur Importer le fichier manifeste de l’application UWP pour entrer automatiquement le Nom du package, le Nom de l’éditeur, et l’ID de l’application UWP.
Si votre application s’inscrit pour des notifications d’imprimante, remplissez la boîte Gestionnaires de notifications. Dans ID de l’événement, saisissez le nom du gestionnaire d’événements d’impression. Dans Actif de l’événement, saisissez le nom du fichier où ce code réside.
Lorsque vous avez terminé, cliquez sur Suivant jusqu’à ce que vous arriviez à la page Terminer.
Sur la page Revoir le package de métadonnées de périphérique, assurez-vous que tous les paramètres sont corrects et sélectionnez la case à cocher Copier le package de métadonnées de périphérique dans le magasin de métadonnées sur l’ordinateur local. Ensuite, cliquez sur Enregistrer.
Reconnectez votre imprimante pour que Windows lise les métadonnées de périphérique mises à jour lorsque le périphérique est connecté.
Dépannage
Problème : Aucune notification toast par défaut n’apparaît
Si aucune notification d’impression par défaut n’apparaît comme prévu...
Cause possible : Le test de signature n’est pas activé. Consultez la section Débogage de ce sujet pour savoir comment l’activer.
Causes possibles : Les stratégies de domaine ont désactivé les notifications toast. Quittez le domaine et réessayez.
Causes possibles : L’imprimante n’a pas mis en œuvre les DriverEvents. Vérifiez que votre pilote v4 prend en charge Bidi et DriverEvents. Pour plus d’informations, veuillez consulter ma section Support du pilote pour une interface utilisateur personnalisée.
Cause possible : La machine n’a aucun travail récent dans la file d’attente de l’imprimante. Assurez-vous que l’icône de l’imprimante est affichée dans le coin inférieur droit de votre écran. Sinon, envoyez un autre travail d’impression.
Cause possible : Votre point d’entrée pour la tâche d’arrière-plan (
IBackgroundTask
) est dans le même projet que votre application d’avant-plan. Cette opération n’est pas autorisée. Séparez complètement une nouvelle classe pour le gestionnaire de tâche d’arrière-plan.Cause possible : La classe qui est le point d’entrée pour les notifications dans votre application est incorrectement spécifiée dans votre manifeste ou vos métadonnées de périphérique, ce qui provoque le crash de l’application dans l’hôte d’arrière-plan et n’affiche aucun toast. Vérifiez ce qui suit :
Assurez-vous que le point d’entrée est correctement spécifié dans l’onglet Déclarations du Concepteur de manifeste. Il doit être sous la forme de Namespace.ClassName pour C# et C++. Pour JavaScript, il doit s’agir du chemin d’accès relatif au fichier .js.
Une application JavaScript doit appeler close() une fois terminée.
La classe C# doit implémenter Windows.ApplicationModel.Background.IBackgroundTask et doit avoir une méthode publique
Run(Windows.ApplicationModel.Background.IBackgroundTaskInstance taskInstance)
.La classe C++ doit implémenter Windows::ApplicationModel::Background::IBackgroundTask et doit avoir une méthode
virtual void Run(Windows::ApplicationModel::Background::IBackgroundTaskInstance^ taskInstance)
.
Rubriques connexes
Vue d’ensemble des badges (applications UWP)
Vue d’ensemble des vignettes et des notifications de vignette (applications UWP)
Instructions et liste de vérification pour les vignettes et les badges (applications UWP)
Vue d’ensemble des notifications Toast (applications UWP)
Prise en charge des pilotes pour l’interface utilisateur personnalisée
Développement de pilotes d’impression v4
Interfaces d’extension d’imprimante (pilote d’impression v4)
Communications bidirectionnelles
Bien démarrer avec les applications UWP
Créer une application UWP pour périphérique (guide pas à pas)