Freigeben über


Anheften einer App an die Taskleiste

Sie können jetzt Benutzer programmgesteuert auffordern, Ihre Win32- oder UWP-App an die Taskleiste anzuheften, ähnlich wie Sie Ihre App ans Startmenü anheften können. Außerdem können Sie überprüfen, ob Ihre App angeheftet ist und ob die Taskleiste das Anheften zulässt.

Screenshot einer Windows 11-Taskleiste mit einer angehefteten App.

Wichtig

Erfordert Fall Creators Update: Sie müssen das SDK 16299 als Ziel verwenden und Build 16299 oder höher ausführen, um die Taskleisten-APIs verwenden zu können.

Wichtige APIs: TaskbarManager-Klasse

Wann sollten Sie den Benutzer bitten, Ihre App an die Taskleiste anzuheften?

Mithilfe der TaskbarManager-Klasse können Sie den Benutzer bitten, Ihre App an die Taskleiste anzuheften. Der Benutzer muss dieser Anforderung zustimmen. Sie haben viel Mühe in die Erstellung einer herausragenden App investiert, und jetzt haben Sie die Möglichkeit, den Benutzer zu bitten, sie an die Taskleiste anzuheften. Bevor wir uns jedoch ausführlich mit dem Code befassen, sollten Sie beim Entwerfen Ihrer Erfahrung Folgendes beachten:

  • Erstellen Sie in Ihrer App eine nicht störende und leicht zu schließende UX mit einem eindeutigen Handlungsaufruf. Vermeiden Sie für diesen Zweck die Verwendung von Dialogfeldern und Flyouts. Es werden barrierefreie Anheftsymbole oder eine vergleichbare UX empfohlen. Dies ist aber nicht zwingend erforderlich.
  • Stellen Sie sicher, dass Ihre App dem Benutzer einen Mehrwert bietet, bevor Sie ihn auffordern, sie anzuheften.
  • Bitten Sie einen Benutzer nicht, Ihre App anzuheften, wenn die Kachel bereits angeheftet ist oder das Gerät dies nicht unterstützt. (In diesem Artikel wird erläutert, wie Sie ermitteln, ob das Anheften unterstützt wird.)
  • Bitten Sie den Benutzer nicht wiederholt, Ihre App anzuheften (er wird sich dadurch wahrscheinlich genervt fühlen).
  • Rufen Sie die Pin-API nicht ohne explizite Benutzerinteraktion und auch dann nicht auf, wenn Ihre App minimiert/nicht geöffnet ist. Ihre App muss sich im Vordergrund befinden, damit der Prozess funktioniert.
  • Verwenden Sie keine Installationsprogramme, um die API aufzurufen.

Genehmigung des Features für eingeschränkten Zugriff (Limited Access Feature, LAF)

Wichtig

Das Anheften in der der Taskleiste ist ein Feature für eingeschränkten Zugriff (siehe LimitedAccessFeatures Klasse). Für weitere Informationen oder zum Anfordern eines Entsperrtokens verwenden Sie bitte das Anforderungsformular für LAF-Zugriffstoken.

1. Überprüfen, ob die erforderlichen APIs vorhanden sind

UWP

Wenn Ihre App ältere Versionen von Windows 10 unterstützt, müssen Sie überprüfen, ob die TaskbarManager-Klasse verfügbar ist. Sie können die ApiInformation.IsTypePresent-Methode verwenden, um diese Überprüfung durchzuführen. Führen Sie keine Aufrufe an die APIs aus, wenn die TaskbarManager-Klasse nicht verfügbar ist.

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

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

Win32

Wenn Sie die TaskbarManager-Klasse Ihrer WIn32-Desktop-App verwenden möchten, müssen Sie überprüfen, ob die Desktop-App-Unterstützung vorhanden ist. Sie können nach der ITaskbarManagerDesktopAppSupportStatics-Markierungsschnittstelle in der TaskbarManager Aktivierungsfactory suchen, um diese Überprüfung durchzuführen. Wenn diese Schnittstelle nicht verfügbar ist, können Sie sie die TaskbarManager-Klasse Ihrer Desktop-App nicht verwenden.

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. Überprüfen, ob die Taskleiste vorhanden ist und Anheften zulässt

Windows-Apps können auf einer Vielzahl von Geräten ausgeführt werden. Nicht alle von ihnen unterstützen die Taskleiste. Derzeit unterstützen nur Desktopgeräte die Taskleiste. Darüber hinaus können Apps zum Anheften auffordern, obwohl es zu einem bestimmten Zeitpunkt nicht zulässig ist. Es wird empfohlen, Apps überprüfen zu lassen, ob Anheften zulässig ist, bevor die UX angezeigt wird, um Benutzer nicht unnötig zu verwirren.

Selbst wenn die Taskleiste verfügbar ist, kann eine Gruppenrichtlinie auf dem Computer des Benutzers das Anheften an die Taskleiste deaktivieren. Bevor Sie also versuchen, Ihre App anzuheften, müssen Sie überprüfen, ob das Anheften an die Taskleiste unterstützt wird. Die TaskbarManager.IsPinningAllowed-Eigenschaft gibt true zurück, wenn die Taskleiste vorhanden ist und das Anheften zulässt.

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

Wichtig

Es gibt auch Anforderungen, die zum Zeitpunkt des Aufrufs erfüllt sein müssen, damit die Aufforderung zum Anheften zulässig ist:

  • Die App befindet sich im Vordergrund.
  • Die App verfügt über einen Startmenüeintrag.

Diese Anforderungen führen nicht zu einer Ausnahme, wenn sie nicht erfüllt sind. Die Anforderung zum Anheften wird lediglich verweigert. IsPinningAllowed kann aufgerufen werden, um festzustellen, ob eine Anforderung zum Anheften (Eingabeaufforderung) zugelassen werden wird.

Hinweis

Wenn Sie Ihre App nicht an die Taskleiste anheften, sondern nur herausfinden möchten, ob die Taskleiste verfügbar ist, verwenden Sie die TaskbarManager.IsSupported-Eigenschaft.

3. 3. Überprüfen, ob Ihre App derzeit an die Taskleiste angeheftet ist.

Offensichtlich ergibt es keinen Sinn, den Benutzer zu bitten, die App an die Taskleiste anzuheften, wenn dies bereits geschehen ist. Mit der TaskbarManager.IsCurrentAppPinnedAsync-Methode können Sie überprüfen, ob die App bereits angeheftet ist, bevor Sie den Benutzer darum bitten.

// 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. Anheften Ihrer App

Wenn die Taskleiste vorhanden, das Anheften zulässig und Ihre App derzeit nicht angeheftet ist, möchten Sie möglicherweise einen dezenten Tipp anzeigen, um Benutzer darüber zu informieren, dass sie Ihre App anheften können. Sie können beispielsweise an einer Stelle in Ihrer Benutzeroberfläche ein Anheften-Symbol anzeigen, auf das der Benutzer klicken kann.

Wenn der Benutzer auf Benutzeroberfläche mit dem Vorschlag zum Anheften klickt, würden Sie die TaskbarManager.RequestPinCurrentAppAsync-Methode aufrufen. Diese Methode zeigt ein Dialogfeld an, in dem der Benutzer aufgefordert wird, zu bestätigen, dass ihre App an die Taskleiste angeheftet werden soll.

Wichtig

Dies muss aus einem UI-Thread im Vordergrund aufgerufen werden. Andernfalls wird eine Ausnahme ausgelöst.

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

Dialogfeld „Anheften“

Diese Methode gibt einen booleschen Wert zurück, der angibt, ob Ihre App jetzt an die Taskleiste angeheftet ist. Wenn Ihre App bereits angeheftet wurde, gibt die Methode sofort true zurück, ohne dem Benutzer das Dialogfeld anzuzeigen. Wenn der Benutzer im Dialogfeld auf „“Nein“ klickt oder das Anheften der App an die Taskleiste nicht zulässig ist, wird die false-Methode zurückgegeben. Andernfalls hat der Benutzer auf „Ja“ geklickt, und die App wurde angeheftet, woraufhin die API true zurückgeben wird.

Ressourcen