Aggiungere l'app alla barra delle applicazioni

Ora puoi richiedere agli utenti a livello di codice di aggiungere l'app Win32 o UWP alla barra delle applicazioni, in modo simile a come puoi aggiungere la tua app al menu Start. È anche possibile verificare se l'app è attualmente bloccata e se la barra delle applicazioni consente l'aggiunta.

Screenshot of a Windows 11 task bar showing the app pinned there.

Importante

Richiede Fall Creators: è necessario usare l'SDK 16299 di destinazione ed eseguire la build 16299 o successiva per usare le API della barra delle applicazioni.

API importanti: classe TaskbarManager

Quando è necessario chiedere all'utente di aggiungere l'app alla barra delle applicazioni?

La classe TaskbarManager consente di chiedere all'utente di aggiungere l'app alla barra delle applicazioni. L'utente deve approvare la richiesta. Ci si impegna molto per creare un'app stellare e ora si ha la possibilità di chiedere all'utente di aggiungerla alla barra delle applicazioni. Ma prima di approfondire il codice, ecco alcuni aspetti da tenere presente durante la progettazione dell'esperienza:

  • Crea un'esperienza utente senza interruzioni e facilmente disabolibili nell'app con una chiara call to action. Evitare di usare dialoghi e riquadri a comparsa a questo scopo. Le icone di aggiunta accessibili o un'esperienza utente simile sono consigliate ma non necessarie.
  • Assicurarsi che l'app abbia valore per l'utente prima di chiedere all'utente di aggiungerla.
  • Non chiedere a un utente di aggiungere l'app se il riquadro è già stato aggiunto o il dispositivo non lo supporta. Questo articolo illustra come determinare se l'aggiunta è supportata.
  • Non chiedere ripetutamente all'utente di aggiungere l'app (probabilmente si infastidirà).
  • Non chiamare l'API pin senza l'interazione esplicita dell'utente o quando l'app è ridotta a icona o non aperta. L'app deve essere in primo piano per il funzionamento del processo.
  • Non usare i programmi di installazione per chiamare l'API.

Approvazione della funzionalità di accesso limitato (LAF)

Importante

L'aggiunta della barra delle applicazioni è una funzionalità di accesso limitato (vedere classe LimitedAccessFeatures). Per altre informazioni o per richiedere un token di sblocco, contattare supporto tecnico Microsoft.

1. Controllare se le API necessarie esistono

UWP

Se l'app supporta le versioni precedenti di Windows 10, devi verificare se la TaskbarManager classe è disponibile. Puoi usare il metodo ApiInformation.IsTypePresent per eseguire questo controllo. Se la TaskbarManager classe non è disponibile, evitare di eseguire chiamate alle API.

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

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

App Win32

Se vuoi usare TaskbarManager dall'app desktop WIn32, dovrai verificare se è presente il supporto delle app desktop. Per eseguire questo controllo, è possibile cercare l'interfaccia dell'indicatore ITaskbarManagerDesktopAppSupportStatics nella TaskbarManager factory di attivazione. Se questa interfaccia non è disponibile, non sarai in grado di usare TaskbarManager dall'app desktop.

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. Controllare se la barra delle applicazioni è presente e consente l'aggiunta

Le app di Windows possono essere eseguite su un'ampia gamma di dispositivi; non tutti supportano la barra delle applicazioni. Al momento, solo i dispositivi desktop supportano la barra delle applicazioni. Inoltre, le app possono richiedere l'aggiunta, ma l'aggiunta potrebbe non essere consentita in un determinato momento. È consigliabile che le app verifichino se l'aggiunta è consentita prima che venga visualizzata l'esperienza utente per evitare confusione per gli utenti.

Anche se la barra delle applicazioni è disponibile, un criterio di gruppo nel computer dell'utente potrebbe disabilitare l'aggiunta della barra delle applicazioni. Quindi, prima di tentare di aggiungere l'app, è necessario verificare se l'aggiunta alla barra delle applicazioni è supportata. La proprietà TaskbarManager.IsPinningAllowed restituisce true se la barra delle applicazioni è presente e consente l'aggiunta.

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

Importante

Esistono anche requisiti che devono essere soddisfatti al momento in cui la chiamata viene effettivamente effettuata per consentire la richiesta di pin:

  • L'app è in primo piano
  • L'app ha una voce di menu Start

Questi requisiti non genereranno un'eccezione se non soddisfatta, la richiesta di pin verrà semplicemente negata. IsPinningAllowed può essere chiamato per determinare se sarà consentita una richiesta pin (prompt).

Nota

Se non vuoi aggiungere l'app alla barra delle applicazioni e vuoi solo scoprire se la barra delle applicazioni è disponibile, usa la proprietà TaskbarManager.IsSupported .

3. Controlla se l'app è attualmente aggiunta alla barra delle applicazioni

Ovviamente, non è possibile chiedere all'utente di aggiungere l'app alla barra delle applicazioni se è già stata aggiunta. Puoi usare il metodo TaskbarManager.IsCurrentAppPinnedAsync per verificare se l'app è già stata aggiunta prima di chiedere all'utente.

// 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. Aggiungere l'app

Se la barra delle applicazioni è presente e l'aggiunta è consentita e l'app non è attualmente bloccata, potrebbe essere necessario visualizzare un suggerimento sottile per informare gli utenti che possono aggiungere l'app. Ad esempio, è possibile visualizzare un'icona a forma di puntina da qualche parte nell'interfaccia utente su cui l'utente può fare clic.

Se l'utente fa clic sull'interfaccia utente del suggerimento di aggiunta, chiama il metodo TaskbarManager.RequestPinCurrentAppAsync . Questo metodo visualizza una finestra di dialogo che chiede all'utente di confermare che l'app è stata aggiunta alla barra delle applicazioni.

Importante

Questa operazione deve essere chiamata da un thread dell'interfaccia utente in primo piano. In caso contrario, verrà generata un'eccezione.

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

Pin dialog

Questo metodo restituisce un valore booleano che indica se l'app è stato aggiunta alla barra delle applicazioni. Se l'app è già stata aggiunta, il metodo restituisce true immediatamente senza mostrare la finestra di dialogo all'utente. Se l'utente fa clic su "no" nella finestra di dialogo o l'aggiunta dell'app alla barra delle applicazioni non è consentita, il metodo restituisce false. In caso contrario, l'utente ha fatto clic su Sì e l'app è stata aggiunta e l'API restituirà true.

Risorse