Notificación
La API Badge
permite a los desarrolladores establecer el número de notificaciones de iconos de la aplicación en la pantalla principal.
Las siguientes condiciones previas son necesarias para poder utilizar la API Badge
:
Se requiere una configuración adicional para admitir dispositivos Android. Consulte la sección Android a continuación.
Sintaxis
C#
La API Badge
se puede usar de la siguiente manera en C#:
void SetCount(uint value)
{
Badge.Default.SetCount(value);
}
Métodos
método | Descripción |
---|---|
SetCount | Establezca el recuento de notificaciones. |
Registro de dependencias
Si desea usar la capa integrada de inserción de dependencias en .NET MAUI, primero deberá registrar la implementación de Badge
dentro de MauiProgram
.
Actualice MauiProgram.cs
con los siguientes cambios:
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();
}
}
Ahora puede insertar el servicio de la siguiente manera:
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);
}
}
Ejemplos
Puede encontrar un ejemplo de la API Badge
en acción en la Aplicación de muestra del kit de herramientas de la comunidad de .NET MAUI.
API
Puede encontrar el código fuente de la API Badge
en el Repositorio de GitHub del kit de herramientas de comunidad de .NET MAUI.
Android
Advertencia
Debido al amplio panorama de fabricantes e iniciadores de dispositivos Android, tenga en cuenta que puede haber variaciones impredecibles en la forma en que se muestran o no se muestran los recuentos de notificaciones de la aplicación en los diferentes dispositivos.
En el mundo de Android, un tamaño rara vez se ajusta a todos. Este principio es cierto cuando se trata de establecer recuentos de notificaciones de aplicación, debido a la falta de una API estandarizada proporcionada por el sistema Android para esta funcionalidad.
Los distintos iniciadores de Android han elegido implementar recuentos de notificaciones a su manera. La mayoría de iniciadores, incluidos los más populares, como Nova Launcher, Microsoft Launcher, etc., tienen sus métodos específicos para controlar esta característica.
Por lo tanto, para asegurarse de que las notificaciones de distintivo de la aplicación aparecen correctamente en los distintos iniciadores, debe recurrir a la programación de implementaciones de código específicas para cada iniciador. Esto significa adaptar el código a los requisitos específicos del mecanismo exclusivo de recuento de notificaciones de cada iniciador.
Considérelo un obstáculo que los desarrolladores deben superar para lograr una experiencia de aplicación universal. Esto se debe al ecosistema flexible de Android que fomenta la diversidad y la personalización.
Es importante tener en cuenta que, aunque es factible cubrir los iniciadores de Android más populares, sería casi imposible atender a todos y cada uno de ellos, dada la gran cantidad de iniciadores disponibles en el mercado.
Con el CommunityToolkit, le proporcionamos la manera de implementar su propia lógica de recuento de notificaciones para los proveedores que desee admitir. Puede hacerlo de esta forma:
- Implementar la interfaz
CommunityToolkit.Maui.ApplicationModel.IBadgeProvider
. Consulte la implementación deSamsungBadgeProvider
a modo de ejemplo: SamsungBadgeProvider. - En el constructor
MainApplication
de Android, establezca el identificador del iniciador en la implementación deIBadgeProvider
. Por ejemplo, el iniciador de Samsung tendría este aspecto:
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);
}
- Añada los permisos necesarios a
AndroidManifest.xaml
. Por ejemplo, el iniciador de Samsung tendría este aspecto:
<uses-permission android:name="com.sec.android.provider.badge.permission.READ" />
<uses-permission android:name="com.sec.android.provider.badge.permission.WRITE" />
Estos cambios son suficientes para que la aplicación se ejecute en un dispositivo Samsung basado en Android y actualice correctamente el número de notificaciones de iconos de la aplicación. También proporciona un punto de partida y una guía sobre cómo puede empezar a implementar la compatibilidad con otros iniciadores dentro de la aplicación.
Por lo tanto, aunque nuestro código pretende proporcionar una implementación ideal, puede haber casos en los que Android no se comporte según lo previsto.
Recomendamos encarecidamente probar en profundidad la aplicación en una amplia variedad de dispositivos e iniciadores para obtener la evaluación más precisa de cómo se comportan las notificaciones de distintivos de aplicación en su caso de uso específico.
.NET MAUI Community Toolkit