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 — отображаемый заголовок.
  • Подзаголовок: если поддерживается подзаголовок для отображения под заголовком.
  • Значок: должен соответствовать значкам в соответствующем каталоге ресурсов на каждой платформе.

App Actions on Homescreen

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

При запуске приложения зарегистрируйтесь для получения события 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