Fäst din app i aktivitetsfältet

Nu kan du programmatiskt be användarna att fästa din Win32- eller UWP-app i aktivitetsfältet, ungefär som hur du kan fästa appen på Start-menyn. Och du kan kontrollera om din app för närvarande är fäst och om aktivitetsfältet tillåter att fästa.

Skärmbild av ett Aktivitetsfält för Windows 11 som visar appen som är fäst där.

Important

Kräver Fall Creators Update: Du måste rikta in dig på SDK 16299 och använda version 16299 eller senare för att kunna använda aktivitetsfältets API:er.

Viktiga API:er: TaskbarManager-klass

När ska du be användaren att fästa appen i aktivitetsfältet?

Med klassen TaskbarManager kan du be användaren att fästa appen i aktivitetsfältet. användaren måste godkänna begäran. Du lägger ner mycket arbete på att skapa en fantastisk app, och nu har du möjlighet att be användaren att fästa den i aktivitetsfältet. Men innan vi går in i koden, här är några saker att tänka på när du utformar din upplevelse:

  • Skapa ett icke-störande och lätt att ignorera UX i din app med en tydlig handlingsuppmaning. Undvik att använda dialogrutor och utfällbara alternativ för detta ändamål. Lättillgängliga fästikoner eller liknande användarupplevelse rekommenderas men krävs inte.
  • Kontrollera att appen har ett värde för användaren innan du ber användaren att fästa den.
  • Be inte en användare att fästa appen om panelen redan är fäst eller om enheten inte stöder den. (Den här artikeln beskriver hur du avgör om pinning stöds.)
  • Be inte användaren att fästa appen upprepade gånger (de blir förmodligen irriterade).
  • Anropa inte pin-API:et utan explicit användarinteraktion eller när appen är minimerad/inte öppen. Appen måste vara i förgrunden för att processen ska fungera.
  • Använd inte installationsprogram för att anropa API:et.

Godkännande av funktionen Begränsad åtkomst (LAF)

Important

Aktivitetsfältets fästning är en funktion för begränsad åtkomst (se klassen LimitedAccessFeatures). För mer information eller om du vill begära en upplåsningstoken, använd LAF Access Token Request Form.

1. Kontrollera om nödvändiga API:er finns

UWP

Om din app stöder äldre versioner av Windows 10 måste du kontrollera om TaskbarManager klassen är tillgänglig. Du kan använda metoden ApiInformation.IsTypePresent för att utföra den här kontrollen. Om klassen TaskbarManager inte är tillgänglig kan du undvika att köra några anrop till API:erna.

if (ApiInformation.IsTypePresent("Windows.UI.Shell.TaskbarManager"))
{
    // Taskbar APIs exist!
}

else
{
    // Older version of Windows, no taskbar APIs
}

Win32

Om du vill använda TaskbarManager från din WIn32-skrivbordsapp måste du kontrollera om stöd för skrivbordsappar finns. Du kan söka efter ITaskbarManagerDesktopAppSupportStatics markörgränssnittet på TaskbarManager aktiveringsfabriken för att utföra den här kontrollen. Om det här gränssnittet inte är tillgängligt kan du inte använda TaskbarManager från din skrivbordsapp.

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. Kontrollera om aktivitetsfältet finns och tillåter fastsättning

Windows-appar kan köras på en mängd olika enheter. Alla stöder inte aktivitetsfältet. Just nu stöder endast Desktop-enheter aktivitetsfältet. Dessutom kan appar begära pinning, men pinning kanske inte tillåts vid en viss tidpunkt. Det rekommenderas att appar kontrollerar om fastsättning tillåts innan UX visas för att undvika att användarna blir förvirrade.

Även om aktivitetsfältet är tillgängligt kan en gruppolicy på användarens dator inaktivera att fästa objekt i aktivitetsfältet. Innan du försöker fästa appen måste du kontrollera om det går att fästa i aktivitetsfältet. Egenskapen TaskbarManager.IsPinningAllowed returnerar true om aktivitetsfältet finns och tillåter fästning.

// 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

Det finns också krav som måste uppfyllas när anropet faktiskt görs för att pin-begäran ska tillåtas:

  • Appen är i förgrunden
  • Appen har en post i Start-menyn
  • För att meddelanden ska kunna visas måste användaren ha systemaviseringar aktiverade. Vi rekommenderar att du visar upp det här kravet för användare i appens UX.

Dessa krav resulterar inte i ett undantag om det inte uppfylls. Pin-begäran nekas bara. IsPinningAllowed kan anropas för att avgöra om en PIN-förfrågan (prompt) kan tillåtas.

Note

Om du inte vill fästa appen i aktivitetsfältet och bara vill ta reda på om aktivitetsfältet är tillgängligt använder du egenskapen TaskbarManager.IsSupported .

3. Kontrollera om din app för närvarande är fäst i aktivitetsfältet

Det är uppenbart att det inte är någon idé att be användaren att låta dig fästa appen i aktivitetsfältet om den redan är fäst där. Du kan använda metoden TaskbarManager.IsCurrentAppPinnedAsync för att kontrollera om appen redan är fäst innan du frågar användaren.

// 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. Fäst din app

Om aktivitetsfältet finns och det är tillåtet att fästa, och din app för närvarande inte är fäst, kan du överväga att visa ett diskret tips för att informera användarna om att de kan fästa din app. Du kan till exempel visa en fästikon någonstans i användargränssnittet som användaren kan klicka på.

Om användaren klickar på gränssnittet för pin-förslag anropar du metoden TaskbarManager.RequestPinCurrentAppAsync . Den här metoden visar en dialogruta där användaren uppmanas att bekräfta att de vill att din app ska fästas i aktivitetsfältet.

Important

Detta måste anropas från en förgrundsgränssnittstråd, annars genereras ett undantag.

// Request to be pinned to the taskbar.
bool isPinned = await TaskbarManager.GetDefault().RequestPinCurrentAppAsync();

Pin dialog

Den här metoden returnerar ett booleskt värde som anger om appen nu är fäst i aktivitetsfältet. Om appen redan har fästs, returnerar metoden true omedelbart utan att visa dialogrutan för användaren. Om användaren klickar på "nej" i dialogrutan, eller om det inte är tillåtet att fästa appen i aktivitetsfältet, returnerar falsemetoden . Annars klickade användaren på Ja och appen fästs och API:et returnerar true.

Resources