Guest Post - UWP: Pinnare la tile primaria sulla start screen

Questo post è stato scritto da Alessio Iafrate, MVP e Community Lead di DotNet Abruzzo.

Windows sin dalla versione 7 su piattaforma Mobile è stato caratterizzato dalla presenza delle Tile che permettono di avere a disposizione sul menu start in maniera molto veloce tutte le informazioni principali ed aggiornate delle varie app. Con l’avvento di Windows 10 questa caratteristica è stata aggiunta anche nel menu start della versione desktop.

Le applicazioni hanno a disposizione due tipi di tile, quella “primaria”, che può essere inserita nello start una sola volta dall’utente mediante una pressione prolungata sull’icona dell’applicazione e selezionando aggiungi a start, e quelle "secondarie", che possono essere create direttamente dall’applicazione.

Un esempio esplicativo può essere l’applicazione posta che ci permette di avere la tile principale con il riassunto di tutte le nostre mail e poi tante tile secondarie per controllare ogni singola casella di posta.

Con il rilascio della build 15025 di Windows 10 qualcosa è cambiato ed è stata aggiunta la possibilità per le app di poter pinnare sulla start screen anche la tile primaria.

Per poter utilizzare questa funzionalità la nostra app dovrà avere come target minimo l’sdk versione 15003.

Al momento della scrittura di questo articolo l’ultima versione disponibile dell’sdk è la 15021 in versione preview e richiede Visual Studio 2017 RC, maggiori dettagli sono disponibili all’indirizzo https://blogs.windows.com/buildingapps/2017/02/03/windows-10-sdk-preview-build-15021-released

Naturalmente è molto importante offrire all’utente un’esperienza d’uso corretta e non presentare la richiesta di aggiunta della pin se non disponibile. Ecco quindi quali sono i passi da seguire:

1.     Controllare se l’API è disponibile

La prima cosa da fare è verificare tramite l’API ApiInformation che la classe StartScreenManager sia disponibile sul nostro sistema, classe che ci permettà di eseguire tutte le funzioni di cui abbiamo bisogno

1

2

3

4

5

6

7

8

9

if (ApiInformation.IsTypePresent("Windows.UI.StartScreen.StartScreenManager"))

{

    // Primary tile API supported!

}

  else

{

    // Older version of Windows, no primary tile API

}

2) Controllare se il menu Start supporta la nostra app

Al momento solo le versioni Desktop e Mobile del Sistema Operativo supportano questa funzionalità quindi è necessario controllare con la chiamata a SupportsAppListEntry se la nostra tile possa essere aggiunta.

 

1

2

3

4

5

6

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

3) Controllare se la tile è già presente

Adesso che sappiamo che il sistema è compatibile l’ultima cosa da fare è controllare se la tile è già presente, visto che potrebbe essere già stata inserita anche dall’utente, in questo caso ci viene in aiuto il metodo ContainsAppListEntryAsync

 

1

2

3

4

5

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

4) Eseguire il pin della tile.

Una volta che siamo sicuri di poter procedere con l’inserimento, quello che dobbiamo fare è invocare il metodo RequestAddAppListEntryAsync che presenterà all’utente una finestra di conferma per essere sicuri che si voglia effettivamente eseguire l’operazione e ritornerà un booleano che ci indicherà se l’operazione è andata a buon fine oppure no.

Nel caso la tile sia già presente non sarà visualizzata nessuna richiesta di conferma all’utente ed il metodo ritornerà subito true.

 

1

2

3

4

5

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

Questa nuova API permette di rendere la nostra app più visibile e quindi di poter generare più interesse, ma bisogna stare attenti all’utilizzo che se ne fa per evitare di infastidire l’utente. Ecco allora alcune operazioni che bisogna evitare di eseguire:

·        Chiedere costantemente all’utente di inserire la tile

·        Richiedere di aggiungere la tile quando questa è già presente

·        Chiamare l’API di aggiunta senza l’esplicito consenso da parte dell’utente

mentre è buona norma

·        Avere un pulsante o una voce delle impostazioni dedicata alla funzione con un titolo chiaro

·        Dare informazioni all’utente sui vantaggi di aggiungere la tile sulla schermata start

Cosa ne pensate di questa nuova funzionalità? La inserirete nelle vostre app?

Buon coding!!