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.
-
UIApplication.SupportsAlternateIcons: se
true
l'app ha un set di icone alternativo. -
UIApplication.AlternateIconName: restituisce il nome dell'icona alternativa attualmente selezionata o
null
se si usa l'icona primaria. - UIApplication.SetAlternateIconName: usare questo metodo per passare l'icona dell'app all'icona alternativa specificata.
-
UNUserNotificationCenter.Current.SetBadgeCount
- Imposta il conteggio dei badge dell'icona dell'app su Springboard (deprecato in iOS 16+ e tvOS 16+).
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:
Apri il catalogo delle risorse del progetto (Assets.xcassets) in Finder:
Creare una copia della cartella
AppIcon.appiconset
esistente:Sostituire ogni icona nella cartella copiata con la nuova icona delle dimensioni corrispondenti:
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 diInfo.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.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
// 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à
// 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à 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:
Se l'utente torna all'icona primaria, verrà visualizzato un avviso simile al seguente: