API de vignette principale
Remarque
Les vignettes Vie sont une fonctionnalité Windows 10 qui n’est pas prise en charge sur les versions ultérieures de Windows. Pour les nouvelles applications, nous vous recommandons de suivre les instructions actuelles pour les icônes d’application.
Les API de vignette principale vous permettent de vérifier si votre application est actuellement épinglée au démarrage et demande d’épingler la vignette principale de votre application.
Important
Nécessite Creators Update : vous devez cibler le SDK 15063 et exécuter Windows 10 build 15063 ou version ultérieure pour utiliser les API de vignette principale.
API importantes : classe StartScreenManager, ContainsAppListEntryAsync, RequestAddAppListEntryAsync
Quand utiliser les API de vignette principale
Vous avez beaucoup d’efforts pour concevoir une expérience exceptionnelle pour la vignette principale de votre application, et maintenant vous avez la possibilité de demander à l’utilisateur de l’épingler au démarrage. Mais avant de nous plonger dans le code, voici quelques points à garder à l’esprit lorsque vous concevez votre expérience :
- Créez une expérience utilisateur non perturbatrice et facilement ignorée dans votre application avec un appel clair « Épingler la vignette dynamique » à l’action.
- Expliquez clairement la valeur de la vignette dynamique de votre application avant de demander à l’utilisateur de l’épingler.
- Ne demandez pas à un utilisateur d’épingler la vignette de votre application si la vignette est déjà épinglée ou si l’appareil ne le prend pas en charge (plus d’informations ci-dessous).
- Ne demandez pas à plusieurs reprises à l’utilisateur d’épingler la vignette de votre application (elles seront probablement énervées).
- N'appelez pas l'API pin sans interaction explicite de l'utilisateur ou lorsque votre application est réduite/pas ouverte.
Vérification de l’existence de l’API
Si votre application prend en charge les versions antérieures de Windows 10, vous devez vérifier si ces API de vignette principale sont disponibles. Pour ce faire, utilisez ApiInformation. Si les API de vignette principale ne sont pas disponibles, évitez d’exécuter des appels aux API.
if (ApiInformation.IsTypePresent("Windows.UI.StartScreen.StartScreenManager"))
{
// Primary tile API's supported!
}
else
{
// Older version of Windows, no primary tile API's
}
Vérifier si Start prend en charge votre application
En fonction de la menu Démarrer actuelle et de votre type d’application, l’épinglage de votre application à l’écran de démarrage actuel peut ne pas être pris en charge. Par exemple, les appareils IoT ou Xbox ne prennent pas en charge l’épinglage au démarrage. Par conséquent, avant d’afficher une interface utilisateur d’épingle ou d’exécuter un code pin, vous devez d’abord vérifier si votre application est même prise en charge pour l’écran de démarrage actuel. S’il n’est pas pris en charge, n’invitez pas l’utilisateur à épingler la vignette.
// Get your own app list entry
// (which is always the first app list entry assuming you are not a multi-app package)
AppListEntry entry = (await Package.Current.GetAppListEntriesAsync())[0];
// Check if Start supports your app
bool isSupported = StartScreenManager.GetDefault().SupportsAppListEntry(entry);
Vérifiez si vous êtes actuellement épinglé
Pour savoir si votre vignette principale est actuellement épinglée à Start, utilisez la méthode ContainsAppListEntryAsync .
// Get your own app list entry
AppListEntry entry = (await Package.Current.GetAppListEntriesAsync())[0];
// Check if your app is currently pinned
bool isPinned = await StartScreenManager.GetDefault().ContainsAppListEntryAsync(entry);
Épingler votre vignette principale
Si votre vignette principale n’est actuellement pas épinglée et que votre vignette est prise en charge par Start, vous pouvez afficher un conseil aux utilisateurs qu’ils peuvent épingler votre vignette principale.
Remarque
Vous devez appeler cette API à partir d’un thread d’interface utilisateur pendant que votre application est au premier plan, et vous devez uniquement appeler cette API une fois que l’utilisateur a demandé intentionnellement que la vignette principale soit épinglée (par exemple, une fois que l’utilisateur a cliqué sur Oui à votre conseil sur l’épinglage de la vignette).
Si l’utilisateur clique sur votre bouton pour épingler la vignette principale, vous appelez la méthode RequestAddAppListEntryAsync pour demander que votre vignette soit épinglée au démarrage. Cette opération affiche une boîte de dialogue demandant à l’utilisateur de confirmer qu’elle souhaite que votre vignette soit épinglée au menu Démarrer.
Cela renvoie une valeur booléenne qui indique si votre vignette est désormais épinglée à Start. Si votre vignette a déjà été épinglée, cela retourne true
immédiatement 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 vignette à Démarrer n’est pas pris en charge, cela retourne false
. Sinon, l’utilisateur a cliqué sur « Oui » et la vignette a été épinglée, et l’API retourne true
.
// Get your own app list entry
AppListEntry entry = (await Package.Current.GetAppListEntriesAsync())[0];
// And pin it to Start
bool isPinned = await StartScreenManager.GetDefault().RequestAddAppListEntryAsync(entry);