Xamarin.Essentials: App-Aktionen

Mit der AppActions-Klasse können Sie App-Verknüpfungen erstellen und über das App-Symbol darauf reagieren.

Erste Schritte

Lesen Sie zum Einstieg in die Verwendung dieser API den Leitfaden mit ersten Schritte für Xamarin.Essentials, um sicherzustellen, dass die Bibliothek ordnungsgemäß installiert und in Ihren Projekten eingerichtet ist.

Für den Zugriff auf die AppActions-Funktionen ist die folgende plattformspezifische Einrichtung erforderlich.

Fügen Sie den Intent-Filter Ihrer MainActivity-Klasse hinzu:

[IntentFilter(
        new[] { Xamarin.Essentials.Platform.Intent.ActionAppAction },
        Categories = new[] { Android.Content.Intent.CategoryDefault })]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
    ...

Fügen Sie dann die folgende Logik hinzu, um Aktionen zu behandeln:

protected override void OnResume()
{
    base.OnResume();

    Xamarin.Essentials.Platform.OnResume(this);
}

protected override void OnNewIntent(Android.Content.Intent intent)
{
    base.OnNewIntent(intent);

    Xamarin.Essentials.Platform.OnNewIntent(intent);
}

Erstellen von Aktionen

Fügen Sie in Ihrer Klasse einen Verweis auf Xamarin.Essentials hinzu:

using Xamarin.Essentials;

App-Aktionen können jederzeit erstellt werden, sie werden jedoch häufig beim Starten einer Anwendung erstellt. Rufen Sie die SetAsync-Methode auf, um die Liste der Aktionen für Ihre App zu erstellen.

try
{
    await AppActions.SetAsync(
        new AppAction("app_info", "App Info", icon: "app_info_action_icon"),
        new AppAction("battery_info", "Battery Info"));
}
catch (FeatureNotSupportedException ex)
{
    Debug.WriteLine("App Actions not supported");
}

Wenn App-Aktionen für die spezifische Betriebssystemversion nicht unterstützt werden, wird eine FeatureNotSupportedException ausgelöst.

Die folgenden Eigenschaften können in einer AppAction angegeben werden:

  • Id: Ein eindeutiger Bezeichner, der zum Reagieren auf das Tippen auf die Aktion verwendet wird.
  • Title: der Titel, der angezeigt werden soll.
  • Subtitle: Wenn Untertitel unterstützt werden, werden sie unterhalb des Titels angezeigt.
  • Symbol: Muss den Symbolen im entsprechenden Ressourcenverzeichnis auf jeder Plattform entsprechen.

App Actions on Homescreen

Reagieren auf Aktionen

Wenn Ihre Anwendung mit der Registrierung für das OnAppAction-Ereignis beginnt. Wenn eine App-Aktion ausgewählt wird, sendet das Ereignis Informationen darüber, welche Aktion ausgewählt wurde.

public App()
{
    //...
    AppActions.OnAppAction += AppActions_OnAppAction;
}

void AppActions_OnAppAction(object sender, AppActionEventArgs e)
{
    // Don't handle events fired for old application instances
    // and cleanup the old instance's event handler
    if (Application.Current != this && Application.Current is App app)
    {
        AppActions.OnAppAction -= app.AppActions_OnAppAction;
        return;
    }
    MainThread.BeginInvokeOnMainThread(async () =>
    {
        await Shell.Current.GoToAsync($"//{e.AppAction.Id}");
    });
}

GetActions

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

API