Xamarin.Essentials: Ações de Aplicativo

A classe AppActions permite que você crie e responda a atalhos de aplicativo do ícone do aplicativo.

Introdução

Para começar a usar essa API, leia o guia de introdução para Xamarin.Essentials garantir que a biblioteca esteja instalada e configurada corretamente em seus projetos.

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

Adicione o filtro de intenção à sua MainActivity classe:

[IntentFilter(
        new[] { Xamarin.Essentials.Platform.Intent.ActionAppAction },
        Categories = new[] { Android.Content.Intent.CategoryDefault })]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
    ...

Em seguida, adicione a seguinte lógica para lidar com ações:

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

    Xamarin.Essentials.Platform.OnResume(this);
}

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

    Xamarin.Essentials.Platform.OnNewIntent(intent);
}

Criar ações

Adicione uma referência a Xamarin.Essentials em sua classe:

using Xamarin.Essentials;

As Ações de Aplicativo podem ser criadas a qualquer momento, mas geralmente são criadas quando um aplicativo é iniciado. Chame o SetAsync método para criar a lista de ações para seu aplicativo.

try
{
    await AppActions.SetAsync(
        new AppAction("app_info", "App Info", icon: "app_info_action_icon"),
        new AppAction("battery_info", "Battery Info"));
}
catch (FeatureNotSupportedException ex)
{
    Debug.WriteLine("App Actions not supported");
}

Se as Ações de Aplicativo não tiverem suporte na versão específica do sistema operacional, um FeatureNotSupportedException será gerado.

As propriedades a seguir podem ser definidas em um AppAction:

  • Id: um identificador exclusivo usado para responder ao toque de ação.
  • Título: o título visível a ser exibido.
  • Subtítulo: se houver suporte para um subtítulo a ser exibido sob o título.
  • Ícone: deve corresponder ícones no diretório de recursos correspondente em cada plataforma.

Ações do Aplicativo na Tela Inicial

Respondendo a ações

Quando seu aplicativo começar a se registrar para o OnAppAction evento. Quando uma ação de aplicativo for selecionada, o evento será enviado com informações sobre qual ação foi selecionada.

public App()
{
    //...
    AppActions.OnAppAction += AppActions_OnAppAction;
}

void AppActions_OnAppAction(object sender, AppActionEventArgs e)
{
    // Don't handle events fired for old application instances
    // and cleanup the old instance's event handler
    if (Application.Current != this && Application.Current is App app)
    {
        AppActions.OnAppAction -= app.AppActions_OnAppAction;
        return;
    }
    MainThread.BeginInvokeOnMainThread(async () =>
    {
        await Shell.Current.GoToAsync($"//{e.AppAction.Id}");
    });
}

GetActions

Você pode obter a lista atual de Ações de Aplicativo chamando AppActions.GetAsync().

API