Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Vous pouvez désormais demander par programme aux utilisateurs d'épingler votre application Win32 ou UWP à la barre des tâches, de la même manière que vous pouvez épingler votre application au menu Démarrer. Vous pouvez également vérifier si votre application est actuellement épinglée et si l’épinglage est autorisé par la barre des tâches.
Important
Nécessite la mise à jour des créateurs d'automne : Vous devez cibler le SDK 16299 et exécuter la build 16299 ou une version ultérieure pour utiliser les API de la barre des tâches.
API importantes : Classe TaskbarManager
Quand devez-vous demander à l’utilisateur d’épingler votre application sur la barre des tâches ?
La classe TaskbarManager vous permet de demander à l'utilisateur d'épingler votre application à la barre des tâches ; l'utilisateur doit approuver la demande. Vous avez investi beaucoup d'efforts pour créer une application exceptionnelle, et maintenant vous avez la possibilité de demander à l'utilisateur de l'épingler dans la barre des tâches. Mais avant de plonger dans le code, voici quelques éléments à garder à l’esprit lorsque vous concevez votre expérience :
- Créer une UX non perturbatrice et facilement rejetable dans votre application avec un appel à l'action clair. Évitez d'utiliser des boîtes de dialogue et des menus déroulants à cette fin. Des icônes d’épinglage accessibles ou une UX similaire sont recommandées mais pas obligatoires.
- Assurez-vous que votre application a de la valeur pour l'utilisateur avant de lui demander de l'épingler.
- Ne demandez pas à un utilisateur d'épingler votre application si la vignette est déjà épinglée ou si l'appareil ne la prend pas en charge. (Cet article explique comment déterminer si l’épinglage est pris en charge.)
- N'agacez pas l'utilisateur en demandant plusieurs fois d'épingler votre application (ils s'agaceront probablement).
- N’appelez pas le Pin API sans interaction explicite de l’utilisateur ou lorsque votre application est réduite ou non ouverte. Votre application doit être au premier plan pour que le processus fonctionne.
- N'utilisez pas d'installateurs pour appeler l'API.
Approbation de la fonctionnalité d'accès limité (LAF)
Important
La fonction d'épinglage dans la barre des tâches est une fonctionnalité à accès limité (voir la classe LimitedAccessFeatures). Pour plus d'informations ou pour demander un jeton de déverrouillage, veuillez utiliser le formulaire de requête de jeton d'accès LAF.
1. Vérifiez si les API requises existent
UWP
Si votre application prend en charge les anciennes versions de Windows 10, vous devez vérifier si la classe TaskbarManager est disponible. Vous pouvez utiliser la méthode ApiInformation.IsTypePresent pour effectuer cette vérification. Si la classe TaskbarManager n'est pas disponible, évitez d'exécuter des appels aux API.
if (ApiInformation.IsTypePresent("Windows.UI.Shell.TaskbarManager"))
{
// Taskbar APIs exist!
}
else
{
// Older version of Windows, no taskbar APIs
}
Win32
Si vous souhaitez utiliser TaskbarManager de votre application de bureau WIn32, vous devrez vérifier si la prise en charge des applications de bureau est présente. Vous pouvez rechercher l'interface du marqueur ITaskbarManagerDesktopAppSupportStatics sur la fabrique d'activation TaskbarManager pour effectuer cette vérification. Si cette interface n'est pas disponible, vous ne pourrez pas l'utiliser TaskbarManager depuis votre application de bureau.
if (winrt::try_get_activation_factory<winrt::Windows::UI::Shell::TaskbarManager, winrt::Windows::UI::Shell::ITaskbarManagerDesktopAppSupportStatics>())
{
// TaskbarManager desktop app support is available.
}
else
{
// TaskbarManager desktop app support is not available.
}
2. Vérifiez si la barre des tâches est présente et permet l’épinglage
Les applications Windows peuvent s’exécuter sur un large éventail d’appareils ; ils ne prennent pas tous en charge la barre des tâches. Pour l’instant, seuls les appareils de bureau prennent en charge la barre des tâches. De plus, les applications peuvent demander l’épinglage, mais l’épinglage peut ne pas être autorisé à un moment donné. Il est suggéré que les applications vérifient si l’épinglage est autorisé avant que l’UX n’apparaisse pour éviter de dérouter les utilisateurs.
Même si la barre des tâches est disponible, une stratégie de groupe sur l’ordinateur de l’utilisateur peut désactiver l’épinglage de la barre des tâches. Par conséquent, avant de tenter d’épingler votre application, vous devez vérifier si l’épinglage à la barre des tâches est pris en charge. La propriété TaskbarManager.IsPinningAllowed renvoie true si la barre des tâches est présente et autorise l'épinglage.
// Check if taskbar allows pinning, apps may request pinning, but pinning may not be allowed at any given time. It is suggested that apps check whether pinning is allowed before a UX is surfaced in order to prevent confusing users.
bool isPinningAllowed = TaskbarManager.GetDefault().IsPinningAllowed;
Important
Certaines conditions doivent également être remplies au moment où l'appel est effectivement effectué pour que la demande de code PIN soit autorisée :
- L'application est au premier plan
- L'application a une entrée dans le menu Démarrer
- Pour que les notifications soient affichées, l’utilisateur doit avoir activé les notifications système. Nous vous recommandons d’exposer cette exigence aux utilisateurs au sein de l’expérience utilisateur de l’application.
Ces exigences n'entraîneront pas d'exception si elles ne sont pas respectées, la demande de code PIN sera simplement refusée.
IsPinningAllowed peut être appelé pour déterminer si une demande de code PIN (invite) sera autorisée.
Note
Si vous ne souhaitez pas épingler votre application à la barre des tâches et souhaitez simplement savoir si la barre des tâches est disponible, utilisez la propriété TaskbarManager.IsSupported.
3. Vérifiez si votre application est actuellement épinglée à la barre des tâches
Évidemment, il n’y a aucun intérêt à demander à l’utilisateur de vous permettre d’épingler l’application à la barre des tâches si elle est déjà épinglée. Vous pouvez utiliser la méthode TaskbarManager.IsCurrentAppPinnedAsync pour vérifier si l'application est déjà épinglée avant de demander à l'utilisateur.
// Check whether your app is currently pinned
bool isPinned = await TaskbarManager.GetDefault().IsCurrentAppPinnedAsync();
if (isPinned)
{
// The app is already pinned--no point in asking to pin it again!
}
else
{
//The app is not pinned.
}
4. Épingler votre application
Si la barre des tâches est présente et que l'épinglage est autorisé et que votre application n'est actuellement pas épinglée, vous souhaiterez peut-être afficher une astuce subtile pour informer les utilisateurs qu'ils peuvent épingler votre application. Par exemple, vous pouvez afficher une icône d'épingle quelque part dans votre interface utilisateur sur laquelle l'utilisateur peut cliquer.
Si l’utilisateur clique sur l’interface utilisateur de votre suggestion d’épingle, vous appellerez alors la méthode TaskbarManager.RequestPinCurrentAppAsync. Cette méthode affiche une boîte de dialogue qui demande à l'utilisateur de confirmer qu'il souhaite que votre application soit épinglée dans la barre des tâches.
Important
Cela doit être appelé à partir d’un thread d’interface utilisateur de premier plan, sinon une exception sera levée.
// Request to be pinned to the taskbar.
bool isPinned = await TaskbarManager.GetDefault().RequestPinCurrentAppAsync();
Cette méthode renvoie une valeur booléenne qui indique si votre application est désormais épinglée à la barre des tâches. Si votre application était déjà épinglée, la méthode revient immédiatement true sans afficher la boîte de dialogue à l'utilisateur. Si l'utilisateur clique sur « non » dans la boîte de dialogue ou si l'épinglage de votre application dans la barre des tâches n'est pas autorisé, la méthode renvoie false. Sinon, l'utilisateur a cliqué sur oui et l'application a été épinglée, et l'API reviendra true.
Resources
Windows developer