Notificação
A API Badge
permite que os desenvolvedores definam o número de selo do ícone do aplicativo na tela inicial.
As seguintes pré-condições são necessárias para usar a API Badge
:
Configuração adicional necessária para dar suporte a dispositivos Android. Confira a seção Android abaixo.
Sintaxe
C#
A API Badge
pode ser usada da seguinte maneira em C#:
void SetCount(uint value)
{
Badge.Default.SetCount(value);
}
Métodos
Método | Descrição |
---|---|
SetCount | Defina a contagem de selos. |
Registro de dependência
Se você quiser usar a camada interna de injeção de dependência dentro do .NET MAUI, será necessário primeiro registrar a implementação Badge
dentro do seu MauiProgram
.
Atualize MauiProgram.cs
com as próximas alterações:
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.UseMauiCommunityToolkit();
builder.Services.AddSingleton<IBadge>(Badge.Default);
return builder.Build();
}
}
Agora você pode injetar o serviço da seguinte maneira:
public partial class MainPage : ContentPage
{
private readonly IBadge badge;
public MainPage(IBadge badge)
{
InitializeComponent();
this.badge = badge;
}
public void SetCount(uint value)
{
badge.SetCount(value);
}
}
Exemplos
Você pode encontrar um exemplo da API Badge
em ação no aplicativo de exemplo do Kit de Ferramentas da Comunidade do .NET MAUI.
API
Você pode encontrar o código-fonte para a API Badge
no repositório GitHub do Kit de Ferramentas da Comunidade do .NET MAUI.
Android
Aviso
Devido ao cenário diversificado de fabricantes e inicializadores de dispositivos Android, lembre-se de que pode haver variações imprevisíveis na forma como as contagens de selos de aplicativo são exibidas ou não exibidas em dispositivos diferentes.
No mundo do Android, raramente há um tamanho único. Esse princípio é verdadeiro quando se trata de definir contagens de selos de aplicativo, devido à falta de uma API padronizada fornecida pelo sistema Android para essa funcionalidade.
Os diferentes inicializadores do Android optaram por implementar contagens de selos de maneira exclusiva. A maioria dos inicializadores, incluindo os populares, como o Nova Launcher, o Microsoft Launcher, etc., têm seus métodos específicos para lidar com esse recurso.
Consequentemente, para garantir que as notificações de selo do aplicativo apareçam corretamente entre esses inicializadores diversos, você deve recorrer à programação de implementações de código específicas para cada inicializador. Isso significa adaptar seu código aos requisitos específicos do mecanismo exclusivo de contagem de selos de cada inicializador.
Considere isso como um obstáculo que os desenvolvedores devem superar, no caminho para alcançar uma experiência universal de aplicativo. Isso ocorre devido ao ecossistema flexível do Android que incentiva a diversidade e a personalização.
É importante observar que, embora seja viável cobrir os inicializadores Android mais populares, seria quase impossível atender a cada um deles, dado o grande número de inicializadores disponíveis no mercado.
Com o CommunityToolkit, fornecemos a maneira de implementar sua própria lógica de contador de selo para provedores aos quais você deseja dar suporte. Você pode fazer isso da seguinte maneira:
- Implemente a interface
CommunityToolkit.Maui.ApplicationModel.IBadgeProvider
. Veja a implementaçãoSamsungBadgeProvider
como exemplo: SamsungBadgeProvider. - No construtor do Android
MainApplication
, defina o identificador do inicializador como sua implementaçãoIBadgeProvider
". Por exemplo, o inicializador Samsung teria esta aparência:
public MainApplication(IntPtr handle, JniHandleOwnership ownership)
: base(handle, ownership)
{
var samsungProvider = new SamsungBadgeProvider();
BadgeFactory.SetBadgeProvider("com.sec.android.app.launcher", samsungProvider);
BadgeFactory.SetBadgeProvider("com.sec.android.app.twlauncher", samsungProvider);
}
- Adicione as permissões necessárias ao
AndroidManifest.xaml
. Por exemplo, o inicializador Samsung teria esta aparência:
<uses-permission android:name="com.sec.android.provider.badge.permission.READ" />
<uses-permission android:name="com.sec.android.provider.badge.permission.WRITE" />
Essas alterações são suficientes para que o seu aplicativo seja executado em um dispositivo Samsung baseado em Android e atualize corretamente o número de selo dos ícones do aplicativo. Elas também fornecem um ponto de partida e um guia sobre como você pode começar a implementar o suporte para outros inicializadores em seu aplicativo.
Portanto, embora nosso código tenha como objetivo fornecer uma implementação ideal, pode haver instâncias em que o Android não se comportará conforme o esperado.
É altamente recomendável testar minuciosamente o seu aplicativo em uma variedade de dispositivos e inicializadores para a avaliação mais precisa de como as notificações de selo de aplicativo se comportam em seu caso de uso específico.
.NET MAUI Community Toolkit