Поделиться через


Действия приложения

Просмотрите пример. Обзор примера

В этой статье описывается, как использовать интерфейс пользовательского интерфейса приложений .NET (.NET MAUI), IAppActions который позволяет создавать ярлыки приложений и реагировать на них. Ярлыки приложений полезны для пользователей, так как они позволяют вам, как разработчику приложений, представить их с дополнительными способами запуска приложения. Например, если вы разрабатываете приложение электронной почты и календаря, можно представить два разных действия приложения, одно для открытия приложения непосредственно к текущему дню календаря, а другое — открыть папку "Входящие".

Реализация интерфейса по умолчанию IAppActions доступна через AppActions.Current свойство. Интерфейс IAppActions и AppActions класс содержатся в Microsoft.Maui.ApplicationModel пространстве имен.

Начало работы

Для доступа к AppActions функциям требуется следующая настройка для конкретной платформы.

Platforms/Android/MainActivity.cs В файле добавьте OnResume и OnNewIntent переопределяет MainActivity класс и следующий IntentFilter атрибут:

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

}

Создание действий

Действия приложения можно создавать в любое время, но часто создаются при запуске приложения. Чтобы настроить действия приложения, вызовите ConfigureEssentials(MauiAppBuilder, Action<IEssentialsBuilder>) метод объекта MauiAppBuilder в файле MauiProgram.cs . Существует два метода, которые необходимо вызвать для IEssentialsBuilder объекта, чтобы включить действие приложения:

  1. AddAppAction

    Этот метод создает действие. Она принимает id строку для уникальной идентификации действия и title строки, отображаемой пользователю. При необходимости можно указать подзаголовок и значок.

  2. OnAppAction

    Делегат, переданный этому методу, вызывается при вызове действия приложения, предоставленного экземпляром действия приложения. Id Проверьте свойство действия, чтобы определить, какое действие приложения было запущено пользователем.

В следующем коде показано, как настроить действия приложения при запуске приложения:

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

Реагирование на действия

После настройки действий приложения метод вызывается для всех действий приложения, OnAppAction вызываемых пользователем. Id Используйте свойство для их отличия. Следующий код демонстрирует обработку действия приложения:

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

Проверьте, поддерживаются ли действия приложения

При создании действия приложения при запуске приложения или во время использования приложения проверьте, поддерживаются ли действия приложения путем чтения AppActions.Current.IsSupported свойства.

Создание действия приложения вне начальной загрузки запуска

Чтобы создать действия приложения, вызовите 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") });
}

Дополнительные сведения о действиях приложения

Если действия приложения не поддерживаются в конкретной версии операционной системы, FeatureNotSupportedException будет возникать исключение.

AppAction(String, String, String, String) Используйте конструктор, чтобы задать следующие аспекты действия приложения:

  • Id: уникальный идентификатор, используемый для реагирования на касание действия.
  • Title: отображаемое название.
  • Subtitle: если поддерживается подзаголовок для отображения под заголовком.
  • Icon: должен соответствовать значкам в соответствующем каталоге ресурсов на каждой платформе.

Действия приложения на домашнем экране.

Получение действий

Вы можете получить текущий список действий приложения, вызвав вызов AppActions.Current.GetAsync.