Freigeben über


App-Aktionen

Browse sample.Beispiel durchsuchen.Durchsuchen Sie das Beispiel

In diesem Artikel wird beschrieben, wie Sie die .NET Multiplattform App UI (.NET MAUI) IAppActions-Schnittstelle verwenden können, mit der Sie App-Verknüpfungen erstellen und auf diese reagieren können. App-Verknüpfungen sind für die Nutzer hilfreich, denn sie ermöglichen es Ihnen als App-Entwickler, ihnen zusätzliche Möglichkeiten zum Starten Ihrer App zu bieten. Wenn Sie zum Beispiel eine E-Mail- und Kalender-App entwickeln, könnten Sie zwei verschiedene App-Aktionen anbieten, eine, um die App direkt zum aktuellen Tag des Kalenders zu öffnen, und eine andere, um den Ordner des E-Mail-Posteingangs zu öffnen.

Die Standardimplementierung der IAppActions-Schnittstelle ist über die Eigenschaft AppActions.Current verfügbar. Sowohl die IAppActions-Schnittstelle als auch die AppActions-Klasse sind im Microsoft.Maui.ApplicationModel-Namespace enthalten.

Erste Schritte

Um auf die Funktion AppActions zugreifen zu können, ist die folgende plattformspezifische Einrichtung erforderlich.

Fügen Sie in der Datei Platforms/Android/MainActivity.cs die Außerkraftsetzungen OnResume und OnNewIntent der Klasse MainActivity sowie das folgende Attribut IntentFilter hinzu:

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

}

Erstellen von Aktionen

App-Aktionen können jederzeit erstellt werden, werden aber häufig bereits beim Start einer App erstellt. Um App-Aktionen zu konfigurieren, rufen Sie die Methode ConfigureEssentials(MauiAppBuilder, Action<IEssentialsBuilder>) für das Objekt MauiAppBuilder in der Datei MauiProgram.cs auf. Es gibt zwei Methoden, die Sie für das IEssentialsBuilder-Objekt aufrufen müssen, um eine App-Aktion zu aktivieren:

  1. AddAppAction

    Diese Methode erstellt eine Aktion. Sie benötigt eine id Zeichenfolge zur eindeutigen Identifizierung der Aktion und eine title-Zeichenfolge, die dem Benutzer angezeigt wird. Optional können Sie einen Untertitel und ein Symbol bereitstellen.

  2. OnAppAction

    Der an diese Methode übergebene Vertreter wird aufgerufen, wenn der Benutzer eine App-Aktion aufruft, sofern die App-Aktionsinstanz vorhanden ist. Überprüfen Sie die Id-Eigenschaft der Aktion, um zu bestimmen, welche App-Aktion vom Benutzer gestartet wurde.

Der folgende Code veranschaulicht, wie die App-Aktionen beim Start der App konfiguriert werden:

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

Reagieren auf Aktionen

Nachdem App-Aktionen konfiguriert wurden, wird die OnAppAction-Methode für alle App-Aktionen aufgerufen, die vom Benutzer angefordert werden. Verwenden Sie die Eigenschaft Id, um sie zu unterscheiden. Der folgende Code zeigt die Handhabung einer App-Aktion:

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

Prüfen, ob App-Aktionen unterstützt werden

Wenn Sie eine App-Aktion erstellen, entweder beim Start der App oder während die App verwendet wird, prüfen Sie, ob App-Aktionen unterstützt werden, indem Sie die AppActions.Current.IsSupported-Eigenschaft lesen.

Erstellen einer App-Aktion außerhalb des Start-Bootstrap

Um App-Aktionen zu erstellen, rufen Sie die Methode SetAsync auf:

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

Weitere Informationen zu App-Aktionen

Wenn App-Aktionen auf der spezifischen Version des Betriebssystems nicht unterstützt werden, wird ein FeatureNotSupportedException ausgelöst.

Verwenden Sie den AppAction(String, String, String, String)-Konstruktor, um die folgenden Aspekte einer App-Aktion festzulegen:

  • Id: eine eindeutige Kennung, die als Antwort auf das Tippen auf die Aktion verwendet wird.
  • Title: der sichtbare Titel, der angezeigt werden soll.
  • Subtitle: Wenn ein Untertitel unterstützt wird, der unter dem Titel angezeigt werden soll.
  • Icon: muss mit den Symbolen im entsprechenden Ressourcenverzeichnis auf jeder Plattform übereinstimmen.

App actions on home screen.App-Aktionen auf dem Startbildschirm.

Aktionen abrufen

Sie können die aktuelle Liste der App-Aktionen abrufen, indem Sie AppActions.Current.GetAsync aufrufen.