Notificación del sistema
Artículo 05/20/2024
6 colaboradores
Comentarios
En este artículo
Toast
es una alerta temporal que aparece en la parte inferior de la pantalla. Se descarta automáticamente después de una duración configurable de tiempo.
Proporciona comentarios sencillos al usuario sobre una operación en una alerta pequeña.
Para acceder a la funcionalidad de Toast
, se requiere la siguiente configuración específica para la plataforma.
No es necesario realizar ninguna configuración.
No es necesario realizar ninguna configuración.
Al usar Snackbar
es esencial realizar los dos pasos siguientes:
1. Habilitar el uso de snackbar con MauiAppBuilder
Al usar el UseMauiCommunityToolkit
use el parámetro options
para habilitar el uso de la snackbar en Windows de la siguiente manera:
var builder = MauiApp.CreateBuilder()
.UseMauiCommunityToolkit(options =>
{
options.SetShouldEnableSnackbarOnWindows(true);
})
Lo anterior registrará automáticamente los controladores necesarios mediante la configuración de eventos de ciclo de vida (OnLaunched
y OnClosed
).
2. Incluir registros ToastNotification en el archivo Package.appxmanifest
Para controlar las acciones de la snackbar, deberá modificar el archivo Platform\Windows\Package.appxmanifest
de la siguiente manera:
En Package.appxmanifest , en la etiqueta de apertura <Package>
, agregue los siguientes espacios de nombres XML:
xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
En Package.appxmanifest , también en la etiqueta de apertura <Package>
, actualice IgnorableNamespaces
para incluir uap
rescap
com
y desktop
:
IgnorableNamespaces="uap rescap com desktop"
Ejemplo: etiqueta <Package>
completada
Este es un ejemplo de una etiqueta de apertura <Package>
completada que ha agregado compatibilidad con Snackbar
:
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
IgnorableNamespaces="uap rescap com desktop">
En Package.appxmanifest , dentro de cada etiqueta <Application>
, agregue las siguientes extensiones:
<Extensions>
<!-- Specify which CLSID to activate when notification is clicked -->
<desktop:Extension Category="windows.toastNotificationActivation">
<desktop:ToastNotificationActivation ToastActivatorCLSID="6e919706-2634-4d97-a93c-2213b2acc334" />
</desktop:Extension>
<!-- Register COM CLSID -->
<com:Extension Category="windows.comServer">
<com:ComServer>
<com:ExeServer Executable="YOUR-PATH-TO-EXECUTABLE" DisplayName="$targetnametoken$" Arguments="----AppNotificationActivated:"> <!-- Example path to executable: CommunityToolkit.Maui.Sample\CommunityToolkit.Maui.Sample.exe -->
<com:Class Id="6e919706-2634-4d97-a93c-2213b2acc334" />
</com:ExeServer>
</com:ComServer>
</com:Extension>
</Extensions>
Ejemplo: etiqueta <Applications>
completada
Este es un ejemplo de una etiqueta <Applications>
completada que ahora ha agregado compatibilidad con Snackbar
:
<Applications>
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="$targetentrypoint$">
<uap:VisualElements
DisplayName="$placeholder$"
Description="$placeholder$"
Square150x150Logo="$placeholder$.png"
Square44x44Logo="$placeholder$.png"
BackgroundColor="transparent">
<uap:DefaultTile Square71x71Logo="$placeholder$.png" Wide310x150Logo="$placeholder$.png" Square310x310Logo="$placeholder$.png" />
<uap:SplashScreen Image="$placeholder$.png" />
</uap:VisualElements>
<Extensions>
<desktop:Extension Category="windows.toastNotificationActivation">
<desktop:ToastNotificationActivation ToastActivatorCLSID="6e919706-2634-4d97-a93c-2213b2acc334" />
</desktop:Extension>
<com:Extension Category="windows.comServer">
<com:ComServer>
<com:ExeServer Executable="YOUR-PATH-TO-EXECUTABLE" DisplayName="$targetnametoken$" Arguments="----AppNotificationActivated:"> <!-- Example path to executable: CommunityToolkit.Maui.Sample\CommunityToolkit.Maui.Sample.exe -->
<com:Class Id="6e919706-2634-4d97-a93c-2213b2acc334" />
</com:ExeServer>
</com:ComServer>
</com:Extension>
</Extensions>
</Application>
</Applications>
Ejemplo: archivo Package.appxmanifest
actualizado para admitir Snackbar
A continuación se muestra un archivo Package.appxmanifest
de ejemplo que se ha actualizado para admitir Snackbar
en Windows:
<?xml version="1.0" encoding="utf-8"?>
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
IgnorableNamespaces="uap rescap com desktop">
<Identity Name="maui-package-name-placeholder" Publisher="CN=Microsoft" Version="0.0.0.0" />
<Properties>
<DisplayName>$placeholder$</DisplayName>
<PublisherDisplayName>Microsoft</PublisherDisplayName>
<Logo>$placeholder$.png</Logo>
</Properties>
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.17763.0" MaxVersionTested="10.0.19041.0" />
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.19041.0" />
</Dependencies>
<Resources>
<Resource Language="x-generate" />
</Resources>
<Applications>
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="$targetentrypoint$">
<uap:VisualElements
DisplayName="$placeholder$"
Description="$placeholder$"
Square150x150Logo="$placeholder$.png"
Square44x44Logo="$placeholder$.png"
BackgroundColor="transparent">
<uap:DefaultTile Square71x71Logo="$placeholder$.png" Wide310x150Logo="$placeholder$.png" Square310x310Logo="$placeholder$.png" />
<uap:SplashScreen Image="$placeholder$.png" />
</uap:VisualElements>
<Extensions>
<desktop:Extension Category="windows.toastNotificationActivation">
<desktop:ToastNotificationActivation ToastActivatorCLSID="6e919706-2634-4d97-a93c-2213b2acc334" />
</desktop:Extension>
<com:Extension Category="windows.comServer">
<com:ComServer>
<com:ExeServer Executable="YOUR-PATH-TO-EXECUTABLE" DisplayName="$targetnametoken$" Arguments="----AppNotificationActivated:"> <!-- Example path to executable: CommunityToolkit.Maui.Sample\CommunityToolkit.Maui.Sample.exe -->
<com:Class Id="6e919706-2634-4d97-a93c-2213b2acc334" />
</com:ExeServer>
</com:ComServer>
</com:Extension>
</Extensions>
</Application>
</Applications>
<Capabilities>
<rescap:Capability Name="runFullTrust" />
</Capabilities>
</Package>
Para obtener más información sobre cómo controlar la activación: Enviar una notificación del sistema local desde aplicaciones de C#
No es necesario realizar ninguna configuración.
Sintaxis
C#
Para mostrar Toast
, créela primero mediante el método estático Toast.Make()
y, a continuación, muéstrela mediante su método Show()
.
using CommunityToolkit.Maui.Alerts;
CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
string text = "This is a Toast";
ToastDuration duration = ToastDuration.Short;
double fontSize = 14;
var toast = Toast.Make(text, duration, fontSize);
await toast.Show(cancellationTokenSource.Token);
Al llamar a Toast.Make()
, se requiere su parámetro string text
. Todos los demás parámetros son opcionales. Su parámetro opcional ToastDuration duration
usa la duración predeterminada de ToastDuration.Short
. Su parámetro opcional double fontSize
usa el valor predeterminado de 14.0
.
En la captura de pantalla siguiente se muestra el resultado de Toast:
Propiedades
Propiedad
Tipo
Descripción
Default value
Texto
string
Texto que se muestra en Toast
.
Obligatorio
Duration
ToastDuration
Duración de Toast
mostrada.
ToastDuration.Short
TextSize
double
Tamaño de fuente de texto.
14.0
ToastDuration
La enumeración ToastDuration
define los miembros siguientes:
Short
: Mostrar Toast
durante 2 segundos
Long
: Mostrar Toast
durante 3,5 segundos
Estos valores se adhieren a las constantes definidas en la android.widget.Toast
API .
Métodos
método
Descripción
Mostrar
Muestra el objeto Toast
solicitado. Si se muestra actualmente, Toast
se descartará automáticamente antes de que se muestre la Toast
solicitada.
Descartar
Descarte la notificación del sistema actual.
Nota:
Solo puede mostrar una Toast
a la vez. Si llama al método Show
una segunda vez, se descartará automáticamente la primera Toast
.
Ejemplos
Puede encontrar un ejemplo de esta característica 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 Toast
en el repositorio de GitHub del Kit de herramientas de la comunidad de .NET MAUI .
La API permite invalidar los métodos existentes con su propia implementación o crear su propia notificación del sistema mediante la implementación de la interfaz IToast
.
Toast se implementa en Android, creado por Google. Otras plataformas usan un contenedor implementado personalizado (UIView
para iOS y MacCatalyst, ToastNotification
en Windows).
Toast en Tizen no se puede personalizar con sus propiedades Duration
y TextSize
.