API de vignette principale

Les API de vignette principale vous permettent de case activée si votre application est actuellement épinglée à l’accueil et de demander à épingler la vignette principale de votre application.

Important

Nécessite la mise à jour de Creators : vous devez cibler le KIT de développement logiciel (SDK) 15063 et exécuter la build 15063 ou une version ultérieure pour utiliser les API de vignette principales.

API importantes : classe StartScreenManager, ContainsAppListEntryAsync, RequestAddAppListEntryAsync

Quand utiliser les API de vignette principale

Vous consacrez beaucoup d’efforts à la conception d’une excellente expérience pour la vignette principale de votre application, et vous avez maintenant la possibilité de demander à l’utilisateur de l’épingler à l’accueil. Mais avant de nous plonger dans le code, voici quelques éléments à 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 à l’action clair « Épingler la vignette dynamique ».
  • 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 la prend pas en charge (plus d’informations ci-dessous).
  • Ne demandez pas à plusieurs reprises à l’utilisateur d’épingler la vignette de votre application (il sera probablement agacé).
  • N’appelez pas l’API pin sans interaction explicite de l’utilisateur ou lorsque votre application est réduite/non ouverte.

Vérification de l’existence de l’API

Si votre application prend en charge des versions antérieures de Windows 10, vous devez case activée si ces API de vignettes principales sont disponibles. Pour ce faire, utilisez ApiInformation. Si les API de vignette primaire 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érifiez si Start prend en charge votre application

Selon le menu Démarrer actuel et votre type d’application, l’épinglage de votre application à l’écran d’accueil actuel peut ne pas être pris en charge. Seuls Desktop et Mobile prennent en charge l’épinglage de la vignette principale à l’écran d’accueil. Par conséquent, avant d’afficher une interface utilisateur ou d’exécuter un code pin, vous devez d’abord case activée si votre application est même prise en charge pour l’écran d’accueil 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 à Démarrer, 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 Démarrer, vous pouvez indiquer aux utilisateurs qu’ils peuvent épingler votre vignette principale.

Notes

Vous devez appeler cette API à partir d’un thread d’interface utilisateur alors que votre application est au premier plan, et vous ne devez appeler cette API qu’après que l’utilisateur a intentionnellement demandé l’épinglage de la vignette principale (par exemple, après 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 à l’accueil. Une boîte de dialogue s’affiche pour demander à l’utilisateur de confirmer qu’il souhaite que votre vignette soit épinglée à l’écran d’accueil.

Cela retourne une valeur booléenne indiquant si votre vignette est désormais épinglée à l’onglet Démarrer. Si votre vignette a déjà été épinglée, cela retourne 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 vignette sur 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);

Ressources