Compartir a través de


Acciones de la aplicación

Browse sample. Examinar el ejemplo

En este artículo se describe cómo puedes usar la interfaz IAppActions de .NET Multi-platform App UI (.NET MAUI), que permite crear y responder a los accesos directos de la aplicación. Los accesos directos de la aplicación son útiles para los usuarios, ya que permiten, como desarrollador de la aplicación, presentarlos con formas adicionales de iniciar tu aplicación. Por ejemplo, si desarrollaste un correo electrónico y una aplicación de calendario, podrías presentar dos acciones de aplicación diferentes, una para abrir la aplicación directamente el día actual del calendario y otra para abrirla en la carpeta bandeja de entrada de correo electrónico.

La implementación predeterminada de la interfaz IAppActions está disponible a través de la propiedad AppActions.Current. Tanto la interfaz IAppActions como la clase AppActions están contenidas en el espacio de nombres Microsoft.Maui.ApplicationModel.

Introducción

Para acceder a la funcionalidad de AppActions, se requiere la siguiente configuración específica para la plataforma.

En el archivo Platforms/Android/MainActivity.cs, agrega las invalidaciones OnResume y OnNewIntent a la clase MainActivity y el atributo IntentFilter siguiente:

[Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
[IntentFilter(new[] { Platform.Intent.ActionAppAction },
              Categories = new[] { global::Android.Content.Intent.CategoryDefault })]
public class MainActivity : MauiAppCompatActivity {

    protected override void OnResume()
    {
        base.OnResume();

        Platform.OnResume(this);
    }

    protected override void OnNewIntent(Android.Content.Intent intent)
    {
        base.OnNewIntent(intent);

        Platform.OnNewIntent(intent);
    }

}

Creación de acciones

Las acciones de aplicación se pueden crear en cualquier momento, pero se crean a menudo cuando se inicia una aplicación. Para configurar acciones de aplicación, invoca el método ConfigureEssentials(MauiAppBuilder, Action<IEssentialsBuilder>) en el objeto MauiAppBuilder en el archivo MauiProgram.cs. Hay dos métodos a los que debe llamar en el objeto IEssentialsBuilder para habilitar una acción de aplicación:

  1. AddAppAction

    Este método crea una acción. Toma una cadena id para identificar de forma única la acción y una cadena title que se muestra al usuario. Opcionalmente, puedes proporcionar un subtítulo y un icono.

  2. OnAppAction

    Se llama al delegado pasado a este método cuando el usuario invoca una acción de aplicación, siempre que se proporcione la instancia de acción de la aplicación. Compruebe la propiedad Id de la acción para determinar qué acción de aplicación inició el usuario.

En el código siguiente se muestra cómo configurar las acciones de la aplicación en el inicio de la aplicación:

public static MauiApp CreateMauiApp()
{
    var builder = MauiApp.CreateBuilder();

    builder
        .UseMauiApp<App>()
        .ConfigureFonts(fonts =>
        {
            fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
            fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
        })
        .ConfigureEssentials(essentials =>
        {
            essentials
                .AddAppAction("app_info", "App Info", icon: "app_info_action_icon")
                .AddAppAction("battery_info", "Battery Info")
                .OnAppAction(App.HandleAppActions);
        });

    return builder.Build();
}

Respuesta a acciones

Una vez configuradas las acciones de la aplicación, se llama al método OnAppAction para todas las acciones de aplicación invocadas por el usuario. Usa la propiedad Id para diferenciarlas. En el código siguiente se muestra cómo controlar una acción de la aplicación:

public static void HandleAppActions(AppAction appAction)
{
    App.Current.Dispatcher.Dispatch(async () =>
    {
        var page = appAction.Id switch
        {
            "battery_info" => new SensorsPage(),
            "app_info" => new AppModelPage(),
            _ => default(Page)
        };

        if (page != null)
        {
            await Application.Current.MainPage.Navigation.PopToRootAsync();
            await Application.Current.MainPage.Navigation.PushAsync(page);
        }
    });
}

Comprobación de compatibilidad de las acciones de la aplicación

Al crear una acción de aplicación, ya sea durante el inicio de la aplicación o mientras se usa la aplicación, comprueba si las acciones de la aplicación son compatibles con la lectura de la propiedad AppActions.Current.IsSupported.

Creación de una acción de la aplicación fuera del arranque de inicio

Para crear acciones de aplicación, llama al método SetAsync:

if (AppActions.Current.IsSupported)
{
    await AppActions.Current.SetAsync(new[] { new AppAction("app_info", "App Info", icon: "app_info_action_icon"),
                                              new AppAction("battery_info", "Battery Info") });
}

Más información sobre las acciones de la aplicación

Si las acciones de la aplicación no son compatibles con la versión específica del sistema operativo, se producirá un elemento FeatureNotSupportedException.

Usa el constructor AppAction(String, String, String, String) para establecer los siguientes aspectos de una acción de aplicación:

  • Id: identificador único que se usa para responder a la acción pulsar.
  • Title: título visible que se va a mostrar.
  • Subtitle: si se admite un subtítulo para mostrar bajo el título.
  • Icon: debe coincidir con los iconos del directorio de recursos correspondiente en cada plataforma.

App actions on home screen.

Lista de acciones

Se puede obtener la lista actual de las acciones de la aplicación mediante una llamada a AppActions.Current.GetAsync.