Xamarin.Essentials: Akce aplikace
Třída AppActions umožňuje vytvářet zástupce aplikací a reagovat na ně z ikony aplikace.
Začínáme
Pokud chcete začít používat toto rozhraní API, přečtěte si příručku Začínáme pro a ujistěte se, že je knihovna správně nainstalovaná a nastavená ve vašich projektech.
Pro přístup k funkcím AppActions se vyžaduje následující nastavení specifické pro platformu.
Přidejte do třídy filtr MainActivity záměru:
[IntentFilter(
new[] { Xamarin.Essentials.Platform.Intent.ActionAppAction },
Categories = new[] { Android.Content.Intent.CategoryDefault })]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
...
Pak přidejte následující logiku pro zpracování akcí:
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);
}
Vytvoření akcí
Do třídy Xamarin.Essentials přidejte odkaz na :
using Xamarin.Essentials;
Akce aplikace je možné vytvořit kdykoli, ale často se vytvářejí při spuštění aplikace. Voláním SetAsync metody vytvořte seznam akcí pro vaši aplikaci.
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");
}
Pokud akce aplikace nejsou podporované v konkrétní verzi operačního systému, vyvolá FeatureNotSupportedException se .
V objektu je možné nastavit následující AppAction vlastnosti:
- ID: Jedinečný identifikátor, který slouží k reakci na klepnutí na akci.
- Název: Viditelný název, který se má zobrazit.
- Podnadpis: Pokud se podporuje podnadpis, který se zobrazí pod nadpisem.
- Ikona: Musí odpovídat ikonám v odpovídajícím adresáři prostředků na každé platformě.

Reakce na akce
Když se aplikace začne registrovat k OnAppAction události. Když je vybraná akce aplikace, událost se odesílá s informacemi o tom, která akce byla vybrána.
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}");
});
}
Akce GetAction
Aktuální seznam akcí aplikace můžete získat AppActions.GetAsync() voláním .
rozhraní API
- Xamarin.Essentials /AppActions" data-linktype="external">zdrojový kód AppActions
- Dokumentace k rozhraní APPActions API