Xamarin.Essentials: Ações do aplicativo
A classe AppActions permite que você crie e responda a atalhos de aplicativo a partir 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, é necessária a seguinte configuração específica da plataforma.
Adicione o filtro de intent à sua MainActivity
turma:
[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 do 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 não houver suporte para ações de aplicativo na versão específica do sistema operacional, um FeatureNotSupportedException
será gerado.
As seguintes propriedades 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.
- Legenda: Se houver suporte, um subtítulo será exibido sob o título.
- Ícone: Deve corresponder aos ícones no diretório de recursos correspondente em cada plataforma.
Respondendo a ações
Quando sua inscrição começar, inscreva-se no OnAppAction
evento. Quando uma ação do aplicativo é 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 do aplicativo chamando AppActions.GetAsync()
.