Xamarin.Essentials: App-Aktionen
Mit der AppActions-Klasse können Sie App-Verknüpfungen erstellen und über das App-Symbol darauf reagieren.
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);
}
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.
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}");
});
}
Sie können die aktuelle Liste der App-Aktionen abrufen, indem Sie AppActions.GetAsync()
aufrufen.