Condividi tramite


Icone di app alternative in .NET per iOS e tvOS

Apple include diverse API UIApplication che consentono a un'app di gestire le sue icone.

Un avviso di esempio quando un'app modifica l'icona

Aggiungere icone alternative a un progetto .NET

Per consentire a un'app di passare a un'icona alternativa, è necessario includere una nuova cartella .appiconset con una raccolta di immagini icona nel catalogo asset del progetto:

  1. Apri il catalogo delle risorse del progetto (Assets.xcassets) in Finder:

    Apri il catalogo delle risorse

  2. Creare una copia della cartella AppIcon.appiconset esistente:

    Copiare la cartella appiconset

  3. Sostituire ogni icona nella cartella copiata con la nuova icona delle dimensioni corrispondenti:

    Creare nuove icone

  4. Aggiungere l'icona dell'app al file di progetto usando la proprietà AppIcon:

    <PropertyGroup>
        <AppIcon>AppIcon</AppIcon>
    </PropertyGroup>
    

    Nota

    I progetti esistenti specificano in genere l'icona dell'app usando la chiave di XSAppIconAssets nel file di Info.plist, ma è comunque consigliabile passare alla proprietà AppIcon nel file di progetto, che è anche più semplice, perché il suo valore è il nome dell'icona, non il percorso della risorsa.

  5. Aggiungere le icone alternative al file di progetto usando il gruppo di elementi AlternativeAppIcons:

    <ItemGroup>
        <AlternativeAppIcon Include="AlternativeAppIcons" />
    </ItemGroup>
    

Gestione dell'icona dell'app

Con le immagini icona incluse nel progetto .NET, lo sviluppatore può controllare l'icona dell'app nei seguenti modi.

La SupportsAlternateIcons proprietà della classe UIApplication consente allo sviluppatore di verificare se un'app supporta icone alternative. Per esempio:

// Can the app select a different icon?
primaryIconButton.Enabled = UIApplication.SharedApplication.SupportsAlternateIcons;
alternateIconButton.Enabled = UIApplication.SharedApplication.SupportsAlternateIcons;

La proprietà ApplicationIconBadgeNumber della classe UIApplication consente allo sviluppatore di ottenere o impostare il numero di badge corrente dell'icona dell'app nello Springboard. Il valore predefinito è zero (0). Per esempio:

// Set the badge number to 1
var badgeCount = 1;
UNUserNotificationCenter.Current.SetBadgeCount (badgeCount, (error) => {
    Console.WriteLine ($"Set badge count to {badgeCount}: {(error is null ? "successfully" : error.ToString ())}");
}

Nota

UNUserNotificationCenter.SetBadgeCount richiede l'autorizzazione dell'utente in iOS, che può essere acquisita chiamando UNUserNotificationCenter.Current.RequestAuthorization prima di impostare il numero di badge.

La proprietà AlternateIconName della classe UIApplication consente allo sviluppatore di ottenere il nome dell'icona dell'app alternativa attualmente selezionata oppure restituisce se l'app usa l'icona primaria. Per esempio:

// Get the name of the currently selected alternate
// icon set
var name = UIApplication.SharedApplication.AlternateIconName;

if (name != null ) {
    // Do something with the name
}

La proprietà SetAlternameIconName della classe UIApplication consente allo sviluppatore di modificare l'icona dell'app. Passare il nome dell'icona per selezionare o null per tornare all'icona primaria. Per esempio:

void UsePrimaryIcon (Foundation.NSObject sender)
{
    UIApplication.SharedApplication.SetAlternateIconName (null, (error) => {
        Console.WriteLine ($"Set Primary Icon: {(error is null ? "successfully" : error.ToString ())}");
    });
}

void UseAlternateIcon (Foundation.NSObject sender)
{
    UIApplication.SharedApplication.SetAlternateIconName ("AlternateAppIcons", (error) => {
        Console.WriteLine ($"Set Alternate Icon: {(error is null ? "successfully" : error.ToString ())}");
    });
}

Quando l'app viene eseguita e l'utente seleziona un'icona alternativa, verrà visualizzato un avviso simile al seguente:

Un avviso di esempio quando un'app modifica l'icona

Se l'utente torna all'icona primaria, verrà visualizzato un avviso simile al seguente:

Un avviso di esempio quando un'app passa all'icona primaria

Vedere anche