Xamarin.Essentials: Akcje aplikacji
Klasa AppActions umożliwia tworzenie skrótów aplikacji i reagowanie na nie z poziomu ikony aplikacji.
Rozpocznij
Aby rozpocząć korzystanie z tego interfejsu API, przeczytaj przewodnik wprowadzający , Xamarin.Essentials aby upewnić się, że biblioteka jest prawidłowo zainstalowana i skonfigurowana w projektach.
Aby uzyskać dostęp do funkcji AppActions , wymagana jest następująca konfiguracja specyficzna dla platformy.
Dodaj filtr intencji do MainActivity
klasy:
[IntentFilter(
new[] { Xamarin.Essentials.Platform.Intent.ActionAppAction },
Categories = new[] { Android.Content.Intent.CategoryDefault })]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
...
Następnie dodaj następującą logikę do obsługi akcji:
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);
}
Tworzenie akcji
Dodaj odwołanie do Xamarin.Essentials klasy:
using Xamarin.Essentials;
Akcje aplikacji można tworzyć w dowolnym momencie, ale są często tworzone podczas uruchamiania aplikacji. Wywołaj metodę , SetAsync
aby utworzyć listę akcji dla aplikacji.
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");
}
Jeśli akcje aplikacji nie są obsługiwane w określonej wersji systemu operacyjnego, FeatureNotSupportedException
zostanie zgłoszony.
Następujące właściwości można ustawić na obiekcie AppAction
:
- Identyfikator: unikatowy identyfikator używany do reagowania na naciśnięcie akcji.
- Tytuł: widoczny tytuł do wyświetlenia.
- Podtytuł: jeśli jest obsługiwany tytuł podrzędny do wyświetlenia pod tytułem.
- Ikona: musi być zgodna z ikonami w odpowiednim katalogu zasobów na każdej platformie.
Odpowiadanie na akcje
Po uruchomieniu OnAppAction
rejestracji aplikacji dla zdarzenia. Po wybraniu akcji aplikacji zdarzenie zostanie wysłane z informacjami dotyczącymi wybranej akcji.
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
Bieżącą listę akcji aplikacji można uzyskać, wywołując polecenie AppActions.GetAsync()
.