App-Aktionen
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:
-
Diese Methode erstellt eine Aktion. Sie benötigt eine
id
Zeichenfolge zur eindeutigen Identifizierung der Aktion und einetitle
-Zeichenfolge, die dem Benutzer angezeigt wird. Optional können Sie einen Untertitel und ein Symbol bereitstellen. -
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-Aktionen auf dem Startbildschirm.
Aktionen abrufen
Sie können die aktuelle Liste der App-Aktionen abrufen, indem Sie AppActions.Current.GetAsync
aufrufen.