Przypinanie aplikacji do paska zadań

Teraz możesz programowo poprosić użytkowników o przypięcie aplikacji Win32 lub WinUI do paska zadań, podobnie jak możesz przypiąć aplikację do menu Start. Możesz również sprawdzić, czy aplikacja jest aktualnie przypięta i czy pasek zadań zezwala na przypinanie.

Zrzut ekranu przedstawiający pasek zadań systemu Windows 11 z przypiętą tam aplikacją.

Important

Wymaga aktualizacji Fall Creators Update: Należy ukierunkować docelowy zestaw SDK 16299 i korzystać z kompilacji 16299 lub nowszej, aby używać API paska zadań.

ważne interfejsy API: klasa TaskbarManager

Kiedy należy poprosić użytkownika o przypięcie aplikacji do paska zadań?

Klasa TaskbarManager umożliwia użytkownikowi przypięcie aplikacji do paska zadań; użytkownik musi zatwierdzić żądanie. Włożyłeś dużo wysiłku w stworzenie znakomitej aplikacji, a teraz masz okazję poprosić użytkownika o przypięcie jej do paska zadań. Jednak zanim przejdziemy do kodu, poniżej przedstawiono kilka kwestii, które należy wziąć pod uwagę podczas projektowania środowiska:

  • Utwórz środowisko użytkownika, które nie jest destrukcyjne i łatwe do odrzucenia w aplikacji, z wyraźnym wywołaniem działania. Unikaj używania okien dialogowych i okien wysuwanych w tym celu. Zalecane jest przypinanie ikon ułatwiających dostęp lub podobnych doświadczeń użytkownika, ale nie jest to wymagane.
  • Upewnij się, że aplikacja ma wartość dla użytkownika, zanim poprosisz go o przypięcie.
  • Nie pytaj użytkownika, aby przypiął aplikację, jeśli kafelek został już przypięty lub urządzenie nie obsługuje przypinania. (W tym artykule wyjaśniono, jak określić, czy przypinanie jest obsługiwane).
  • Nie proście wielokrotnie użytkowników o przypięcie aplikacji (prawdopodobnie się zirytują).
  • nie wywołuj API do przypinania bez wyraźnej interakcji z użytkownikiem lub gdy aplikacja jest zminimalizowana/nie jest otwarta. Aby proces działał, aplikacja musi znajdować się na pierwszym planie.
  • Nie używaj instalatorów do wywoływania interfejsu API.

Zatwierdzanie funkcji ograniczonego dostępu (LAF)

Important

Przypinanie elementów do paska zadań jest funkcjonalnością o ograniczonym dostępie (zobacz klasę LimitedAccessFeatures). Aby uzyskać więcej informacji lub zażądać tokenu odblokowania, użyj formularza żądania tokenu dostępu LAF.

1. Sprawdź, czy istnieją wymagane interfejsy API

Win32

Jeśli chcesz użyć aplikacji TaskbarManager z klasycznego środowiska Win32, musisz sprawdzić, czy dostępna jest obsługa aplikacji desktopowych. Aby wykonać tę kontrolę, możesz wyszukać ITaskbarManagerDesktopAppSupportStatics interfejs znacznika w TaskbarManager fabryce aktywacji. Jeśli ten interfejs nie jest dostępny, nie będzie można używać TaskbarManager z poziomu aplikacji na komputer stacjonarny.

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. Sprawdź, czy pasek zadań jest obecny i czy zezwala na przypinanie

Aplikacje systemu Windows mogą być uruchamiane na wielu różnych urządzeniach; nie wszystkie z nich obsługują pasek zadań. W tej chwili tylko urządzenia stacjonarne obsługują pasek zadań. Ponadto aplikacje mogą żądać przypinania, ale przypinanie może nie być dozwolone w danym momencie. Zaleca się, aby aplikacje sprawdzały, czy przypinanie jest dozwolone, zanim wyświetlą interfejs użytkownika, aby zapobiec dezorientacji użytkowników.

Nawet jeśli pasek zadań jest dostępny, zasady grupy na komputerze użytkownika mogą wyłączyć przypinanie paska zadań. Dlatego przed podjęciem próby przypięcia aplikacji należy sprawdzić, czy przypinanie do paska zadań jest obsługiwane. Właściwość TaskbarManager.IsPinningAllowed zwraca true, jeśli pasek zadań jest obecny i umożliwia przypinanie.

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

Istnieją również wymagania, które muszą zostać spełnione w momencie, gdy wywołanie jest rzeczywiście wykonywane, aby żądanie kodu PIN było dozwolone.

  • Aplikacja znajduje się na pierwszym planie
  • Aplikacja posiada pozycję w menu Start
  • Aby powiadomienia miały być wyświetlane, użytkownik musi mieć włączone powiadomienia systemowe. Zalecamy przedstawienie tego wymagania użytkownikom w interfejsie użytkownika aplikacji.

Te wymagania nie spowodują wyjątku, jeśli nie zostaną spełnione, żądanie numeru PIN zostanie po prostu odrzucone. IsPinningAllowed Można wywołać, aby sprawdzić, czy żądanie kodu PIN (monit) będzie dozwolone.

Note

Jeśli nie chcesz przypiąć aplikacji do paska zadań i po prostu chcesz dowiedzieć się, czy pasek zadań jest dostępny, użyj właściwości TaskbarManager.IsSupported .

3. Sprawdź, czy aplikacja jest aktualnie przypięta do paska zadań

Oczywiście nie ma sensu prosić użytkownika o przypięcie aplikacji do paska zadań, jeśli już tam jest przypięta. Przed zapytaniem użytkownika możesz użyć metody TaskbarManager.IsCurrentAppPinnedAsync, aby sprawdzić, czy aplikacja jest już przypięta.

// 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. Przypnij aplikację

Jeśli pasek zadań jest obecny i przypinanie jest dozwolone, a Twoja aplikacja nie jest obecnie przypięta, możesz wyświetlić drobną wskazówkę, aby poinformować użytkowników, że mogą przypiąć Twoją aplikację. Na przykład możesz wyświetlić ikonę pinezki w interfejsie użytkownika (UI), którą użytkownik może kliknąć.

Jeśli użytkownik kliknie interfejs użytkownika propozycji przypięcia, następnie wywołasz metodę TaskbarManager.RequestPinCurrentAppAsync. Ta metoda wyświetla okno dialogowe z prośbą użytkownika o potwierdzenie, że aplikacja ma zostać przypięta do paska zadań.

Important

Należy to wywołać z wątku interfejsu użytkownika pierwszego planu, w przeciwnym razie wystąpi wyjątek.

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

Okno dialogowe Przypinania

Ta metoda zwraca wartość logiczną wskazującą, czy aplikacja jest teraz przypięta do paska zadań. Jeśli aplikacja została już przypięta, metoda natychmiast zwraca wartość true bez wyświetlania użytkownikowi okna dialogowego. Jeśli użytkownik kliknie przycisk "nie" w oknie dialogowym lub przypięcie aplikacji do paska zadań nie jest dozwolone, metoda zwraca false. W przeciwnym razie użytkownik kliknął przycisk Tak, aplikacja została przypięta, i API zwróci wartość true.

Resources