Azioni dell'app
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:
-
Questo metodo crea un'azione. Accetta una
id
stringa per identificare in modo univoco l'azione e unatitle
stringa visualizzata all'utente. Facoltativamente, è possibile specificare e subtitle .icon -
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.
Ottenere azioni
È possibile ottenere l'elenco corrente di azioni dell'app chiamando AppActions.Current.GetAsync
.