Udostępnij za pośrednictwem


Akcje aplikacji

Przeglądaj przykład. Przeglądanie przykładu

W tym artykule opisano sposób używania interfejsu użytkownika aplikacji wieloplatformowej platformy .NET (.NET MAUI IAppActions ), który umożliwia tworzenie skrótów aplikacji i reagowanie na nie. Skróty aplikacji są przydatne dla użytkowników, ponieważ umożliwiają one, jako deweloperowi aplikacji, przedstawienie im dodatkowych sposobów uruchamiania aplikacji. Jeśli na przykład tworzysz aplikację poczty e-mail i kalendarza, możesz przedstawić dwie różne akcje aplikacji, jedną, aby otworzyć aplikację bezpośrednio do bieżącego dnia kalendarza, a drugą, aby otworzyć folder skrzynki odbiorczej poczty e-mail.

Domyślna implementacja interfejsu IAppActions jest dostępna za pośrednictwem AppActions.Current właściwości . Zarówno interfejs, jak IAppActions i AppActions klasa są zawarte w Microsoft.Maui.ApplicationModel przestrzeni nazw.

Rozpocznij

Aby uzyskać dostęp do AppActions funkcji, wymagana jest następująca konfiguracja specyficzna dla platformy.

Platforms/Android/MainActivity.cs W pliku dodaj OnResume wartości i OnNewIntent przesłonięcia do MainActivity klasy oraz następujący IntentFilter atrybut:

[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);
    }

}

Tworzenie akcji

Akcje aplikacji można tworzyć w dowolnym momencie, ale są często tworzone podczas uruchamiania aplikacji. Aby skonfigurować akcje aplikacji, wywołaj metodę ConfigureEssentials(MauiAppBuilder, Action<IEssentialsBuilder>) na MauiAppBuilder obiekcie w pliku MauiProgram.cs . Istnieją dwie metody, które należy wywołać dla obiektu, IEssentialsBuilder aby włączyć akcję aplikacji:

  1. AddAppAction

    Ta metoda tworzy akcję. Utworzenie ciągu w id celu unikatowego zidentyfikowania akcji oraz title ciągu wyświetlanego użytkownikowi. Opcjonalnie możesz podać element subtitle i .icon

  2. OnAppAction

    Delegat przekazany do tej metody jest wywoływany, gdy użytkownik wywołuje akcję aplikacji, pod warunkiem, że wystąpienie akcji aplikacji. Id Sprawdź właściwość akcji, aby określić, która akcja aplikacji została uruchomiona przez użytkownika.

Poniższy kod przedstawia sposób konfigurowania akcji aplikacji podczas uruchamiania aplikacji:

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();
}

Reagowanie na akcje

Po skonfigurowaniu akcji aplikacji metoda jest wywoływana OnAppAction dla wszystkich akcji aplikacji wywoływanych przez użytkownika. Id Użyj właściwości , aby je odróżnić. Poniższy kod demonstruje obsługę akcji aplikacji:

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);
        }
    });
}

Sprawdzanie, czy akcje aplikacji są obsługiwane

Podczas tworzenia akcji aplikacji podczas uruchamiania aplikacji lub podczas korzystania z aplikacji sprawdź, czy akcje aplikacji są obsługiwane przez odczytanie AppActions.Current.IsSupported właściwości.

Tworzenie akcji aplikacji poza uruchamianiem bootstrap

Aby utworzyć akcje aplikacji, wywołaj metodę SetAsync :

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") });
}

Więcej informacji o akcjach aplikacji

Jeśli akcje aplikacji nie są obsługiwane w określonej wersji systemu operacyjnego, FeatureNotSupportedException zostanie zgłoszony element .

Użyj konstruktora AppAction(String, String, String, String) , aby ustawić następujące aspekty akcji aplikacji:

  • Id: unikatowy identyfikator używany do reagowania na naciśnięcie akcji.
  • Title: widoczny title do wyświetlenia.
  • Subtitle: jeśli jest obsługiwany element do subtitle wyświetlenia w obszarze title.
  • Icon: musi odpowiadać ikonom w odpowiednim katalogu zasobów na każdej platformie.

Akcje aplikacji na ekranie głównym.

Uzyskiwanie akcji

Bieżącą listę akcji aplikacji można uzyskać, wywołując polecenie AppActions.Current.GetAsync.