Compartilhar via


Í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+).

Um alerta de exemplo quando um aplicativo altera seu ícone

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:

  1. Abra o catálogo de ativos do projeto (Assets.xcassets) no Finder:

    Abrir o catálogo de ativos

  2. Crie uma cópia da pasta AppIcon.appiconset existente:

    Copiar pasta de appiconset

  3. Substitua cada ícone na pasta copiada pelo novo ícone do tamanho correspondente:

    Criar novos ícones

  4. 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 arquivo Info.plist - isso ainda pode ser usado, mas é recomendável alternar para a propriedade AppIcon 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).

  5. 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 ApplicationIconBadgeNumber da classe UIApplication permite que o desenvolvedor obtenha ou defina o número de selo atual do ícone do aplicativo no Springboard. O valor padrão é zero (0). Por exemplo:

// 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 AlternateIconName da classe UIApplication permite que o desenvolvedor obtenha o nome do ícone de aplicativo alternativo selecionado no momento ou retorna se o aplicativo estiver usando o Ícone Primário. Por exemplo:

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

Um alerta de exemplo quando um aplicativo altera seu ícone

Se o usuário voltar para o ícone primário, um alerta como o seguinte será exibido:

um alerta de exemplo quando um aplicativo é alterado para o ícone primário

Consulte também