Ícones de aplicativo alternativos no .NET para iOS e tvOS
A Apple possui várias APIs de UIApplication que permitem que um aplicativo gerencie seu ícone.
-
UIApplication.SupportsAlternateIcons – se
true
o aplicativo tiver um conjunto alternativo de ícones. -
UIApplication.AlternateIconName – retorna o nome do ícone alternativo atualmente selecionado ou
null
se estiver usando o ícone primário. - UIApplication.SetAlternateIconName – use esse método para alternar o ícone do aplicativo para o ícone alternativo especificado.
-
UNUserNotificationCenter.Current.SetBadgeCount
- Define a contagem de selos do ícone do aplicativo no Springboard (preterido no iOS 16+ e tvOS 16+).
Adicionando ícones alternativos a um projeto do .NET
Para permitir que um aplicativo mude para um ícone alternativo, uma nova pasta .appiconset
com uma coleção de imagens de ícone precisará ser incluída no catálogo de ativos do projeto:
Abra o catálogo de ativos do projeto (Assets.xcassets) no Finder:
Crie uma cópia da pasta
AppIcon.appiconset
existente:Substitua cada ícone na pasta copiada pelo novo ícone do tamanho correspondente:
Adicione o ícone do aplicativo ao arquivo de projeto usando a propriedade
AppIcon
:<PropertyGroup> <AppIcon>AppIcon</AppIcon> </PropertyGroup>
Nota
Os projetos existentes normalmente especificam o ícone do aplicativo usando a chave
XSAppIconAssets
no arquivoInfo.plist
- isso ainda pode ser usado, mas é recomendável alternar para a propriedadeAppIcon
no arquivo de projeto em vez disso (o que também é simplier, porque seu valor é o nome do ícone, não o caminho para o recurso).Adicione os ícones alternativos ao arquivo de projeto usando o grupo de itens
AlternativeAppIcons
:<ItemGroup> <AlternativeAppIcon Include="AlternativeAppIcons" /> </ItemGroup>
Gerenciando o ícone do aplicativo
Com as imagens de ícone incluídas no projeto .NET, o desenvolvedor pode controlar as seguintes maneiras de controlar o ícone do aplicativo.
A propriedade SupportsAlternateIcons da classe UIApplication permite que o desenvolvedor veja se um aplicativo dá suporte a ícones alternativos. Por exemplo:
// Can the app select a different icon?
primaryIconButton.Enabled = UIApplication.SharedApplication.SupportsAlternateIcons;
alternateIconButton.Enabled = UIApplication.SharedApplication.SupportsAlternateIcons;
A propriedade
// 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
requer autorização do usuário no iOS, que pode ser adquirida chamando UNUserNotificationCenter.Current.RequestAuthorization
antes de definir a contagem de ícones.
A propriedade
// Get the name of the currently selected alternate
// icon set
var name = UIApplication.SharedApplication.AlternateIconName;
if (name != null ) {
// Do something with the name
}
A propriedade SetAlternateIconName da classe UIApplication permite que o desenvolvedor altere o ícone do aplicativo. Passe o nome do ícone para selecionar ou null
para retornar ao ícone primário. Por exemplo:
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 o aplicativo é executado e o usuário seleciona um ícone alternativo, um alerta como o seguinte será exibido:
Se o usuário voltar para o ícone primário, um alerta como o seguinte será exibido:
Consulte também
- exemplo do iOS
- de exemplo de tvOS