Partager via


Épingler votre application à la barre des tâches

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. Et vous pouvez vérifier si votre application est actuellement épinglée et si la barre des tâches autorise l'épinglage.

Capture d’écran d’une barre de tâches Windows 11 montrant l’application épinglée.

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 consacré beaucoup d’efforts à la création d’une application exceptionnelle et vous avez désormais la possibilité de demander à l’utilisateur de l’épingler sur 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.)
  • Ne demandez pas à plusieurs reprises à l'utilisateur d'épingler votre application (il sera probablement ennuyé).
  • N'appelez pas l'API pin sans interaction explicite de l'utilisateur ou lorsque votre application est réduite/pas 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 une grande variété d'appareils ; tous ne prennent pas en charge la barre des tâches. À l'heure actuelle, 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 la machine de l'utilisateur peut désactiver l'épinglage de la barre des tâches. Ainsi, avant d'essayer 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

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.

Remarque

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, cela ne sert à rien de demander à l’utilisateur de vous laisser épingler l’application sur la barre des tâches si elle y 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. Épinglez 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();

Boîte de dialogue Épingler

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.

Ressources