Partager via


Actions d’application

Parcourez l’exemple. Parcourir l'exemple

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 :

  1. AddAppAction

    Cette méthode crée une action. Il faut une chaîne id pour identifier de manière unique l’action et une chaîne title affichée aux utilisateurs. Vous pouvez éventuellement fournir un subtitle et une icon.

  2. OnAppAction

    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.

Actions d’application sur l’écran d’accueil.

Obtenir les actions

Vous pouvez obtenir la liste actuelle des actions d’application en appelant AppActions.Current.GetAsync.