Actions d’application
Cet article explique comment vous pouvez utiliser l’interface IAppActions .NET Multi-platform App UI (.NET MAUI), qui vous permet de créer et répondre aux raccourcis d’application. Les raccourcis d’application sont utiles aux utilisateurs, car ils vous permettent, en tant que développeur d’applications, de les présenter avec des moyens supplémentaires de démarrer votre application. Par exemple, si vous développez une application de messagerie et de calendrier, vous pouvez présenter deux actions d’application différentes, une pour ouvrir l’application directement au jour actuel du calendrier, et une autre pour ouvrir le dossier de boîte de réception de messagerie.
L’implémentation par défaut de l’interface IAppActions
est disponible via la propriété AppActions.Current. L’espace de noms Microsoft.Maui.ApplicationModel
contient à la fois l’interface IAppActions
et la classe AppActions
.
Démarrage
Pour accéder à la fonctionnalité AppActions
, vous devez appliquer la configuration spécifique à la plateforme suivante.
Dans le fichier Platforms/Android/MainActivity.cs, ajoutez OnResume
et OnNewIntent
se substitue à la classe MainActivity
, et l’attribut IntentFilter
suivant :
[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);
}
}
Créer des actions
Les actions d’application peuvent être créées à tout moment, mais sont souvent créées au démarrage d’une application. Pour configurer des actions d’application, appelez la méthode ConfigureEssentials(MauiAppBuilder, Action<IEssentialsBuilder>) sur l’objet MauiAppBuilder dans le fichier MauiProgram.cs. Il existe deux méthodes que vous devez appeler sur l’objet IEssentialsBuilder pour activer une action d’application :
-
Cette méthode crée une action. Il faut une chaîne
id
pour identifier de manière unique l’action et une chaînetitle
affichée aux utilisateurs. Vous pouvez éventuellement fournir un subtitle et une icon. -
Le délégué passé à cette méthode est appelé lorsque l’utilisateur appelle une action d’application, à condition que l’instance d’action de l’application soit fournie. Vérifiez la propriété
Id
de l’action pour déterminer l’action d’application qui a été démarrée par l’utilisateur.
Le code suivant montre comment configurer les actions d’application au démarrage de l’application :
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();
}
Réponse aux actions
Une fois les actions d’application configurées, la méthode OnAppAction
est appelée pour toutes les actions d’application appelées par l’utilisateur. Utilisez la propriété Id
pour les différencier. Le code suivant illustre la gestion d’une action d’application :
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);
}
});
}
Vérifier si les actions d’application sont prises en charge
Lorsque vous créez une action d’application, au démarrage de l’application ou pendant l’utilisation de l’application, vérifiez si les actions d’application sont prises en charge en lisant la propriété AppActions.Current.IsSupported
.
Créer une action d’application en dehors de l’amorçage de démarrage
Pour créer des actions d’application, appelez la méthode SetAsync :
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") });
}
Plus d’informations sur les actions d’application
Si les actions d’application ne sont pas prises en charge sur la version spécifique du système d’exploitation, une FeatureNotSupportedException est levée.
Utilisez le constructeur AppAction(String, String, String, String) pour définir les aspects suivants d’une action d’application :
- Id : identificateur unique utilisé pour répondre à l’action Appuyer.
- Title : title visible à afficher.
- Subtitle : s’il est pris en charge, subtitle à afficher sous le title.
- Icon : doit correspondre aux icônes du répertoire des ressources correspondantes sur chaque plateforme.
Obtenir les actions
Vous pouvez obtenir la liste actuelle des actions d’application en appelant AppActions.Current.GetAsync
.