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


Xamarin.Essentials: Действия приложения

Класс AppActions позволяет создавать сочетания клавиш для значка приложения и настраивать реакцию на них.

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

Чтобы начать использовать этот API, ознакомьтесь с руководством по началу работы с Xamarin.Essentials, чтобы правильно настроить и установить библиотеку в проектах.

Для доступа к функции AppActions нужно создать описанную ниже конфигурацию для конкретной платформы.

Добавьте фильтр намерения в класс MainActivity:

[IntentFilter(
        new[] { Xamarin.Essentials.Platform.Intent.ActionAppAction },
        Categories = new[] { Android.Content.Intent.CategoryDefault })]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
    ...

Затем добавьте следующую логику для обработки действий:

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

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

Добавьте ссылку на Xamarin.Essentials в своем классе:

using Xamarin.Essentials;

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

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

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

Для AppAction можно задать следующие свойства:

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

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

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

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

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

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

API