É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.
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();
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
Windows developer