Xamarin.Essentials: azioni dell'app
La classe AppActions consente di creare e rispondere ai collegamenti alle app dall'icona dell'app.
Operazioni preliminari
Per iniziare a usare questa API, leggere la guida introduttiva per Xamarin.Essentials assicurarsi che la libreria sia installata e configurata correttamente nei progetti.
Per accedere alla funzionalità AppActions è necessaria la configurazione specifica della piattaforma seguente.
Aggiungere il filtro finalità alla MainActivity
classe:
[IntentFilter(
new[] { Xamarin.Essentials.Platform.Intent.ActionAppAction },
Categories = new[] { Android.Content.Intent.CategoryDefault })]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
...
Aggiungere quindi la logica seguente per gestire le azioni:
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);
}
Creare azioni
Aggiungere un riferimento a Xamarin.Essentials nella classe :
using Xamarin.Essentials;
Le azioni dell'app possono essere create in qualsiasi momento, ma vengono spesso create all'avvio di un'applicazione. Chiamare il SetAsync
metodo per creare l'elenco di azioni per l'app.
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 le azioni dell'app non sono supportate nella versione specifica del sistema operativo, verrà generata un'eccezione FeatureNotSupportedException
.
È possibile impostare le proprietà seguenti in un oggetto AppAction
:
- ID: identificatore univoco usato per rispondere al tocco dell'azione.
- Titolo: titolo visibile da visualizzare.
- Sottotitolo: se è supportato un sottotitolo da visualizzare sotto il titolo.
- Icona: deve corrispondere alle icone nella directory delle risorse corrispondente in ogni piattaforma.
Risposta alle azioni
All'avvio della registrazione dell'applicazione per l'evento OnAppAction
. Quando viene selezionata un'azione dell'app, l'evento verrà inviato con informazioni su quale azione è stata selezionata.
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
È possibile ottenere l'elenco corrente delle azioni dell'app chiamando AppActions.GetAsync()
.