Dela via


Appåtgärder

Bläddra bland exempel. Bläddra bland exempel

Den här artikeln beskriver hur du kan använda .NET Multi-platform App UI (.NET MAUI) IAppActions-gränssnittet, som gör att du kan skapa och svara på appgenvägar. Appgenvägar är användbara för användarna eftersom de gör att du som apputvecklare kan presentera dem med extra sätt att starta din app. Om du till exempel utvecklar en e-post- och kalenderapp kan du presentera två olika appåtgärder, en för att öppna appen direkt till kalenderns aktuella dag och en annan för att öppna inkorgsmappen för e-post.

Standardimplementeringen av IAppActions-gränssnittet är tillgänglig via egenskapen AppActions.Current. Både IAppActions-gränssnittet och AppActions-klassen finns i namnområdet Microsoft.Maui.ApplicationModel.

Sätta igång

För att få åtkomst till AppActions funktioner krävs följande plattformsspecifika installation.

I filen Platforms/Android/MainActivity.cs lägger du till åsidosättningarna OnResume och OnNewIntent i klassen MainActivity och följande IntentFilter attribut:

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

}

Skapa åtgärder

Appåtgärder kan skapas när som helst, men skapas ofta när en app startar. Om du vill konfigurera appåtgärder anropar du metoden ConfigureEssentials(MauiAppBuilder, Action<IEssentialsBuilder>)MauiAppBuilder-objektet i MauiProgram.cs-filen. Det finns två metoder som du måste anropa på IEssentialsBuilder-objektet för att aktivera en appåtgärd:

  1. AddAppAction

    Den här metoden skapar en åtgärd. Det krävs en id sträng för att unikt identifiera åtgärden och en title sträng som visas för användaren. Du kan också ange en underrubrik och en ikon.

  2. OnAppAction

    Den delegering som skickas till den här metoden anropas när användaren initierar en appåtgärd, givet att instansen av appåtgärden finns. Kontrollera Id-egenskapen för åtgärden för att avgöra vilken åtgärd som startades av användaren.

Följande kod visar hur du konfigurerar appåtgärderna vid appstart:

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

Svara på åtgärder

När appåtgärder har konfigureratsanropas metoden OnAppAction för alla appåtgärder som anropas av användaren. Använd egenskapen Id för att särskilja dem. Följande kod visar hur du hanterar en appåtgärd:

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

Kontrollera om appåtgärder stöds

När du skapar en appåtgärd, antingen vid appstart eller när appen används, kontrollerar du om appåtgärder stöds genom att läsa egenskapen AppActions.Current.IsSupported.

Skapa en app-åtgärd utanför bootstrap-programuppstarten

Om du vill skapa appåtgärder anropar du metoden 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") });
}

Mer information om appåtgärder

Om appåtgärder inte stöds på den specifika versionen av operativsystemet utlöses en FeatureNotSupportedException.

Använd AppAction(String, String, String, String) konstruktorn för att ange följande aspekter av en appåtgärd:

  • Id: En unik identifierare som används för att svara på åtgärdstryckningen.
  • Title: den synliga rubrik som ska visas.
  • Subtitle: Om det finns stöd för en underrubrik som ska visas under rubriken.
  • Icon: Måste matcha ikoner i motsvarande resurskatalog på varje plattform.

Appåtgärder på startskärmen.

Hämta åtgärder

Du kan hämta den aktuella listan över appåtgärder genom att anropa AppActions.Current.GetAsync.