Поделиться через


Индикатор событий

Badge API позволяет разработчикам задать номер значка приложения на начальном экране.

Screenshot of an Badge on Windows


Для использования Badge API требуются следующие предварительные условия:

Дополнительная конфигурация, необходимая для поддержки устройств Android. См . раздел Android ниже.

Синтаксис

C#

Badge API можно использовать следующим образом в C#:

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

Методы

Метод Description
SetCount Задайте число индикаторов событий.

Регистрация зависимостей

Если вы хотите использовать встроенный уровень внедрения зависимостей в .NET MAUI, необходимо сначала зарегистрировать Badge реализацию внутри.MauiProgram Обновите MauiProgram.cs следующие изменения:

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

Теперь вы можете внедрить службу следующим образом:

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

Примеры

Пример API можно найти в действии Badge в сообществе .NET MAUI набор средств пример приложения.

API

Исходный код ДЛЯ Badge API можно найти в репозитории сообщества .NET MAUI community набор средств GitHub.

Android

Предупреждение

Из-за различных ландшафтов производителей и средств запуска устройств Android, обратите внимание, что могут быть непредсказуемые варианты отображения индикаторов событий приложения или их отображения на разных устройствах.

В мире Android один размер редко подходит всем. Этот принцип имеет значение true, когда речь идет о настройке счетчиков индикаторов событий приложения, из-за отсутствия стандартизованного API, предоставляемого системой Android для этой функции.

Различные средства запуска Android решили реализовать счетчики индикаторов событий уникальным способом. Большинство запусков, включая популярные, такие как Nova Launcher, Microsoft Launcher и т. д., имеют свои конкретные методы для обработки этой функции.

Следовательно, чтобы обеспечить правильность отображения уведомлений о индикаторах событий приложения в этих разнообразных средствах запуска, необходимо прибегнуть к программированию конкретных реализаций кода для каждого средства запуска. Это означает, что код адаптируется к конкретным требованиям уникального механизма счетчика индикаторов индикатора каждого запуска.

Рассмотрим это как препятствие, которое разработчики должны преодолеть, в пути к достижению универсального интерфейса приложений. Это связано с гибкой экосистемой Android, которая поощряет разнообразие и настройку.

Важно отметить, что в то время как это возможно для покрытия самых популярных средств запуска Android, было бы почти невозможно обеспечить каждый из них, учитывая большее количество запусков, доступных на рынке.

С помощью сообщества набор средств мы предоставляем вам способ реализации собственной логики счетчика индикаторов индикаторов для поставщиков, которые вы хотите поддерживать. Вот как это сделать:

  1. Реализуйте интерфейс CommunityToolkit.Maui.ApplicationModel.IBadgeProvider. См SamsungBadgeProvider . пример реализации: SamsungBadgeProvider.
  2. В конструкторе Android MainApplication задайте идентификатор средства запуска для реализации IBadgeProvider . Например, средство запуска Samsung будет выглядеть следующим образом:
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. Добавьте необходимые разрешения в объект AndroidManifest.xaml. Например, средство запуска Samsung будет выглядеть следующим образом:
<uses-permission android:name="com.sec.android.provider.badge.permission.READ" />
<uses-permission android:name="com.sec.android.provider.badge.permission.WRITE" />

Эти изменения достаточно, чтобы приложение выполнялось на устройстве Samsung на основе Android и правильно обновляло значок значков приложения. Он также предоставляет отправную точку и руководство по реализации поддержки других запусков в приложении.

Поэтому, хотя наш код стремится обеспечить идеальную реализацию, могут возникнуть экземпляры, в которых Android не будет вести себя должным образом.

Мы настоятельно рекомендуем тщательно протестировать приложение на различных устройствах и средствах запуска для наиболее точной оценки того, как работают уведомления о значках приложений в конкретном варианте использования.