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.
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 :
- Implémentez l'interface
CommunityToolkit.Maui.ApplicationModel.IBadgeProvider
. Consulter l’implémentationSamsungBadgeProvider
comme exemple : SamsungBadgeProvider. - Dans le constructeur Android
MainApplication
, définissez l’identificateur du lanceur sur l’implémentation de votreIBadgeProvider
. 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);
}
- 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.
.NET MAUI Community Toolkit