Condividi tramite


Azioni dell'app

Sfogliare l'esempio. Esplorare l'esempio

Questo articolo descrive come usare l'interfaccia dell'interfaccia dell'app multipiattaforma .NET (.NET MAUI), IAppActions che consente di creare e rispondere ai collegamenti alle app. I collegamenti alle app sono utili per gli utenti perché consentono, come sviluppatore di app, di presentare loro modi aggiuntivi per avviare l'app. Ad esempio, se si sviluppa un'app di posta elettronica e calendario, è possibile presentare due diverse azioni dell'app, una per aprire l'app direttamente al giorno corrente del calendario e un'altra per aprire la cartella posta in arrivo di posta elettronica.

L'implementazione predefinita dell'interfaccia IAppActions è disponibile tramite la AppActions.Current proprietà . Sia l'interfaccia che AppActions la IAppActions classe sono contenute nello spazio dei Microsoft.Maui.ApplicationModel nomi .

Operazioni preliminari

Per accedere alla AppActions funzionalità, è necessaria la configurazione specifica della piattaforma seguente.

Platforms/Android/MainActivity.cs Nel file aggiungere gli OnResume override e OnNewIntent alla MainActivity classe e l'attributo seguenteIntentFilter:

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

}

Creare azioni

Le azioni dell'app possono essere create in qualsiasi momento, ma vengono spesso create all'avvio di un'app. Per configurare le azioni dell'app, richiamare il ConfigureEssentials(MauiAppBuilder, Action<IEssentialsBuilder>) metodo sull'oggetto MauiAppBuilder nel file MauiProgram.cs . Esistono due metodi che è necessario chiamare sull'oggetto IEssentialsBuilder per abilitare un'azione dell'app:

  1. AddAppAction

    Questo metodo crea un'azione. Accetta una id stringa per identificare in modo univoco l'azione e una title stringa visualizzata all'utente. Facoltativamente, è possibile specificare e subtitle .icon

  2. OnAppAction

    Il delegato passato a questo metodo viene chiamato quando l'utente richiama un'azione dell'app, purché l'istanza dell'azione dell'app. Controllare la Id proprietà dell'azione per determinare quale azione dell'app è stata avviata dall'utente.

Il codice seguente illustra come configurare le azioni dell'app all'avvio dell'app:

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

Risposta alle azioni

Dopo aver configurato le azioni dell'app, il OnAppAction metodo viene chiamato per tutte le azioni dell'app richiamate dall'utente. Utilizzare la Id proprietà per distinguerle. Il codice seguente illustra la gestione di un'azione dell'app:

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)
        {
            // Assume an app with a single window.
            await Application.Current.Windows[0].Page.Navigation.PopToRootAsync();
            await Application.Current.Windows[0].Page.Navigation.PushAsync(page);
        }
    });
}

Controllare se le azioni dell'app sono supportate

Quando crei un'azione dell'app, all'avvio dell'app o mentre l'app viene usata, verifica se le azioni dell'app sono supportate leggendo la AppActions.Current.IsSupported proprietà .

Creare un'azione dell'app all'esterno del bootstrap di avvio

Per creare azioni dell'app, chiamare il SetAsync metodo :

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

Altre informazioni sulle azioni dell'app

Se le azioni dell'app non sono supportate nella versione specifica del sistema operativo, verrà generata un'eccezione FeatureNotSupportedException .

Usare il AppAction(String, String, String, String) costruttore per impostare gli aspetti seguenti di un'azione dell'app:

  • Id: identificatore univoco usato per rispondere al tocco dell'azione.
  • Title: oggetto visibile title da visualizzare.
  • Subtitle: se supportato da subtitle visualizzare in title.
  • Icon: deve corrispondere alle icone nella directory delle risorse corrispondente in ogni piattaforma.

Azioni dell'app nella schermata iniziale.

Ottenere azioni

È possibile ottenere l'elenco corrente di azioni dell'app chiamando AppActions.Current.GetAsync.