Xamarin.Essentials: Akce aplikace

Třída AppActions umožňuje vytvořit zástupce aplikace a reagovat na ně z ikony aplikace.

Začínáme

Pokud chcete začít používat toto rozhraní API, přečtěte si úvodní příručkuXamarin.Essentials, abyste měli jistotu, ž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 předmětu 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í

Přidejte do Xamarin.Essentials předmětu odkaz:

using Xamarin.Essentials;

Akce aplikace je možné kdykoli vytvořit, ale často se vytvářejí při spuštění aplikace. SetAsync Voláním 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 podporovány v konkrétní verzi operačního systému, FeatureNotSupportedException vyvolá se.

Následující vlastnosti lze nastavit na AppAction:

  • ID: Jedinečný identifikátor použitý k reakci na klepnutí na akci.
  • Název: viditelný název, který se má zobrazit.
  • Podnadpis: Pokud se pod názvem zobrazí pod názvem podporovaný dílčí název.
  • Ikona: Musí se shodovat s ikonami v odpovídajícím adresáři prostředků na jednotlivých platformách.

App Actions on Homescreen

Reakce na akce

Když aplikace spustí registraci události OnAppAction . Když je vybrána akce aplikace, událost se odešle 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}");
    });
}

GetActions

Aktuální seznam akcí aplikace můžete získat voláním AppActions.GetAsync().

rozhraní API