Freigeben über


Badge

Mit der Badge-API können Entwickler die Signalnummer des App-Symbols auf dem Startbildschirm festlegen.

Screenshot of an Badge on Windows


Die folgenden Voraussetzungen sind erforderlich, um die Badge-API zu verwenden:

Zusätzliche Konfiguration, die für die Unterstützung von Android-Geräten erforderlich ist. Weitere Informationen im Abschnitt „Android“ weiter unten.

Syntax

C#

Die Badge-API kann wie folgt in C# verwendet werden:

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

Methoden

Methode Beschreibung
SetCount Legen Sie die Badgeanzahl fest.

Abhängigkeitsregistrierung

Wenn Sie die integrierte Abhängigkeitsinjektionsebene in .NET MAUI verwenden möchten, müssen Sie die Badge-Implementierung zuerst in Ihrer MauiProgram registrieren. Aktualisieren Sie MauiProgram.cs mit den nächsten Änderungen:

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

Jetzt können Sie den Dienst wie folgt einfügen:

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

Beispiele

Sie finden ein Beispiel für die Badge-API in Aktion in der .NET MAUI Community Toolkit Sample Application.

API

Sie finden den Quellcode für die Badge-API im GitHub-Repository des .NET MAUI Community Toolkits.

Android

Warnung

Aufgrund der vielfältigen Landschaft von Android-Geräteherstellern und -Startgeräten beachten Sie, dass es möglicherweise unvorhersehbare Variationen gibt, wie App-Badge-Anzahlen auf verschiedenen Geräten angezeigt oder nicht angezeigt werden.

In der Welt von Android passt nur selten eine Größe überall. Dieses Prinzip gilt, wenn es darum geht, die Anzahl von Anwendungssignalen festzulegen, da für diese Funktionalität eine standardisierte API fehlt, die vom Android-System bereitgestellt wird.

Verschiedene Android-Startprogramme haben sich entschieden, die Badgeanzahl auf einzigartige Weise zu implementieren. Die meisten Startprogramme, darunter beliebte wie Nova Launcher, Microsoft Launcher usw., verfügen über ihre spezifischen Methoden zur Behandlung dieses Features.

Um sicherzustellen, dass die Signalbenachrichtigungen Ihrer Anwendung über diese verschiedenen Startprogramme ordnungsgemäß angezeigt werden, müssen Sie auf die Programmierung bestimmter Codeimplementierungen für jedes Startprogramm zurückgreifen. Das bedeutet, dass Sie Ihren Code an die spezifischen Anforderungen der eindeutigen Badgeanzahl jedes Startprogramms anpassen, die den Mechanismus angibt.

Betrachten Sie es als eine Hürde, die Entwickler auf dem Weg zur Erreichung einer universellen Anwendungserfahrung überwinden müssen. Dies ist auf das flexible Ökosystem von Android zurückzuführen, das Vielfalt und Anpassung fördert.

Es ist wichtig zu beachten, dass es zwar möglich ist, die beliebtesten Android-Startprogramme abzudecken, aber es wäre aufgrund der schieren Anzahl der im Markt verfügbaren Startprogramme fast unmöglich, auf jeden einzelnen zu achten.

Mit dem CommunityToolkit bieten wir Ihnen die Möglichkeit, Ihre eigene Badgezählerlogik für Anbieter, die Sie unterstützen möchten, zu implementieren. Gehen Sie dazu wie folgt vor:

  1. Implementieren Sie die CommunityToolkit.Maui.ApplicationModel.IBadgeProvider-Schnittstelle. Siehe SamsungBadgeProvider-Implementierung als Beispiel: SamsungBadgeProvider.
  2. Legen Sie im Android-Konstruktor MainApplication den Startprogrammbezeichner auf Ihre IBadgeProvider-Implementierung fest. Beispielsweise würde das Samsung-Startprogramm wie folgt aussehen:
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. Fügen Sie die erforderlichen Berechtigungen zu AndroidManifest.xaml hinzu. Beispielsweise würde das Samsung-Startprogramm wie folgt aussehen:
<uses-permission android:name="com.sec.android.provider.badge.permission.READ" />
<uses-permission android:name="com.sec.android.provider.badge.permission.WRITE" />

Diese Änderungen reichen aus, damit Ihre Anwendung auf einem Android-basierten Samsung-Gerät ausgeführt und die Badgeanzahl der App-Symbole ordnungsgemäß aktualisiert wird. Außerdem erhalten Sie einen Ausgangspunkt und eine Anleitung dazu, wie Sie mit der Implementierung der Unterstützung für andere Startprogramme in Ihrer Anwendung beginnen können.

Obwohl unser Code darauf ausgerichtet ist, eine ideale Implementierung bereitzustellen, es kann vorkommen, dass sich Android nicht erwartungsgemäß verhält.

Es wird dringend empfohlen, Ihre App auf einer Reihe von Geräten und Startprogrammen gründlich zu testen, um die genaueste Einschätzung des Verhaltens von App-Signalbenachrichtigungen in Ihrem spezifischen Anwendungsfall zu erhalten.