Condividi tramite


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.

Azioni dell'app nella schermata Home

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().

API