Akcje aplikacji
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:
-
Ta metoda tworzy akcję. Utworzenie ciągu w
id
celu unikatowego zidentyfikowania akcji oraztitle
ciągu wyświetlanego użytkownikowi. Opcjonalnie możesz podać element subtitle i .icon -
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.
Uzyskiwanie akcji
Bieżącą listę akcji aplikacji można uzyskać, wywołując polecenie AppActions.Current.GetAsync
.