Partilhar via


Ações do aplicativo

Browse sample. Navegue pelo exemplo

Este artigo descreve como você pode usar a interface .NET Multi-platform App UI (.NET MAUI), IAppActions que permite criar e responder a atalhos de aplicativo. Os atalhos de aplicativo são úteis para os usuários porque permitem que você, como desenvolvedor do aplicativo, apresente a eles maneiras extras de iniciar seu aplicativo. Por exemplo, se você estivesse desenvolvendo um aplicativo de email e calendário, poderia apresentar duas ações de aplicativo diferentes, uma para abrir o aplicativo diretamente para o dia atual do calendário e outra para abrir para a pasta da caixa de entrada de email.

A implementação padrão da interface está disponível por meio da IAppActionsAppActions.Current propriedade. A interface e AppActions a IAppActions classe estão contidas no Microsoft.Maui.ApplicationModel namespace.

Introdução

Para acessar a funcionalidade, é necessária a seguinte configuração específica da AppActions plataforma.

Platforms/Android/MainActivity.cs No arquivo, adicione o e substitui a MainActivity classe e OnNewIntent o OnResume seguinte IntentFilter atributo:

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

}

Criar ações

As ações do aplicativo podem ser criadas a qualquer momento, mas geralmente são criadas quando um aplicativo é iniciado. Para configurar ações do aplicativo, chame o ConfigureEssentials(MauiAppBuilder, Action<IEssentialsBuilder>)MauiAppBuilder método no objeto no arquivo MauiProgram.cs . Há dois métodos que você deve chamar no IEssentialsBuilder objeto para habilitar uma ação de aplicativo:

  1. AddAppAction

    Esse método cria uma ação. É necessária uma cadeia de caracteres para identificar exclusivamente a ação e uma idtitle cadeia de caracteres que é exibida para o usuário. Opcionalmente, você pode fornecer uma legenda e um ícone.

  2. OnAppAction

    O delegado passado para esse método é chamado quando o usuário invoca uma ação de aplicativo, desde que a instância de ação de aplicativo. Verifique a Id propriedade da ação para determinar qual ação de aplicativo foi iniciada pelo usuário.

O código a seguir demonstra como configurar as ações do aplicativo na inicialização do aplicativo:

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

Respondendo às ações

Depois que as ações do aplicativo forem configuradas, o método será chamado para todas as OnAppAction ações do aplicativo invocadas pelo usuário. Use a Id propriedade para diferenciá-los. O código a seguir demonstra como manipular uma ação de aplicativo:

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

Verificar se as ações do aplicativo são suportadas

Quando você cria uma ação de aplicativo, na inicialização do aplicativo ou enquanto o aplicativo está sendo usado, verifique se as ações do aplicativo são suportadas lendo a AppActions.Current.IsSupported propriedade.

Criar uma ação de aplicativo fora do bootstrap de inicialização

Para criar ações de aplicativo, chame o SetAsync método:

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

Mais informações sobre ações do aplicativo

Se as ações do aplicativo não forem suportadas na versão específica do sistema operacional, um FeatureNotSupportedException será lançado.

Use o AppAction(String, String, String, String) construtor para definir os seguintes aspectos de uma ação de aplicativo:

  • Id: Um identificador exclusivo usado para responder ao toque de ação.
  • Title: o título visível a ser exibido.
  • Subtitle: Se suportado um subtítulo para exibir sob o título.
  • Icon: Deve corresponder aos ícones no diretório de recursos correspondente em cada plataforma.

App actions on home screen.

Obter ações

Você pode obter a lista atual de ações do aplicativo chamando AppActions.Current.GetAsync.