Partager via


Badge

L’API Badge permet aux développeurs de définir le numéro de badge de l’icône d’application sur l’écran d’accueil.

Screenshot of an Badge on Windows


Les conditions préalables suivantes sont requises pour utiliser l’API Badge :

Configuration supplémentaire requise pour prendre en charge les appareils Android. Voir la section Android ci-dessous.

Syntaxe

C#

L’API Badge peut être utilisé de la manière suivante dans C# :

void SetCount(uint value)
{
    Badge.Default.SetCount(value);
}

Méthodes

méthode Description
SetCount Définit le nombre de badges.

Inscription des dépendances

Si vous souhaitez utiliser la couche d’injection de dépendances intégrée dans .NET MAUI, alors vous devez d’abord inscrire l’implémentation de Badge à l’intérieur de votre MauiProgram. Mettez à jour MauiProgram.cs avec les modifications suivantes :

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();
    }
}

Vous pouvez maintenant injecter le service comme suit :

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);
    }
}

Exemples

Vous trouverez un exemple de l’API Badge en action dans l’Exemple d’application du kit d’outils de la communauté .NET MAUI.

API

Vous pouvez trouver le code source de l’API Badge sur le Référentiel GitHub du kit d’outils de la communauté .NET MAUI.

Android

Avertissement

En raison du paysage diversifié des fabricants et lanceurs d’appareils Android, sachez qu’il peut y avoir des variations imprévisibles dans la façon dont les nombres de badges de l’application sont affichés, ou non affichés, sur les différents appareils.

Dans le monde Android, il est rare qu’on format soit universel. Ce principe est particulièrement vrai quand il s’agit de définir le nombre de badges de l’application, en raison du manque d’une API standardisée fournie par le système Android pour cette fonctionnalité.

Différents lanceurs Android ont choisi d’implémenter les nombres de badges à leur façon propre. La plupart des lanceurs, notamment les populaires tels que Nova Launcher, Microsoft Launcher, etc., ont leurs méthodes spécifiques pour gérer cette fonctionnalité.

Par conséquent, pour vous assurer que les notifications de badge de votre application apparaissent correctement dans ces différents lanceurs, vous devez recourir à la programmation d’implémentations de code spécifiques pour chaque lanceur. Cela signifie d’adapter votre code aux exigences spécifiques du mécanisme unique d’indication du nombre de badges de chaque lanceur.

Considérez ceci le comme un obstacle que les développeurs doivent surmonter, sur la route qui mène à l’obtention d’une expérience d’application universelle. Cela est dû à la flexibilité de l’écosystème Android, qui encourage la diversité et la personnalisation.

Il est important de noter que, bien qu’il soit possible de couvrir les lanceurs Android les plus populaires, il serait presque impossible de répondre à chacun individuellement, compte tenu du nombre très élevé de lanceurs disponibles sur le marché.

Avec le CommunityToolkit, nous vous fournissons la façon d’implémenter votre propre logique de compteur de badges pour les fournisseurs que vous souhaitez prendre en charge. Voici comment procéder :

  1. Implémentez l'interface CommunityToolkit.Maui.ApplicationModel.IBadgeProvider. Consulter l’implémentation SamsungBadgeProvidercomme exemple : SamsungBadgeProvider.
  2. Dans le constructeur Android MainApplication, définissez l’identificateur du lanceur sur l’implémentation de votre IBadgeProvider. Par exemple, le lanceur Samsung ressemblerait à ceci :
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);
}
  1. Ajoutez les autorisations requises à AndroidManifest.xaml. Par exemple, le lanceur Samsung ressemblerait à ceci :
<uses-permission android:name="com.sec.android.provider.badge.permission.READ" />
<uses-permission android:name="com.sec.android.provider.badge.permission.WRITE" />

Ces modifications sont suffisantes pour que votre application s’exécute sur un appareil Samsung Android et mette correctement à jour le numéro de badge des icônes d’application. Elles vous fournissent également un point de départ et un repère sur la façon dont vous pouvez commencer à implémenter la prise en charge d’autres lanceurs au sein de votre application.

Par conséquent, bien que notre code vise à fournir une implémentation idéale, il peut exister des instances où Android ne se comportera pas comme prévu.

Nous vous recommandons vivement de tester soigneusement votre application sur une large gamme d’appareils et de lanceurs pour évaluer le plus précisément la façon dont les notifications de badge d’application se comportent dans votre cas d’usage spécifique.