Appåtgärder
Den här artikeln beskriver hur du kan använda .NET Multi-platform App UI (.NET MAUI) IAppActions-gränssnittet, som gör att du kan skapa och svara på appgenvägar. Appgenvägar är användbara för användarna eftersom de gör att du som apputvecklare kan presentera dem med extra sätt att starta din app. Om du till exempel utvecklar en e-post- och kalenderapp kan du presentera två olika appåtgärder, en för att öppna appen direkt till kalenderns aktuella dag och en annan för att öppna inkorgsmappen för e-post.
Standardimplementeringen av IAppActions
-gränssnittet är tillgänglig via egenskapen AppActions.Current. Både IAppActions
-gränssnittet och AppActions
-klassen finns i namnområdet Microsoft.Maui.ApplicationModel
.
Sätta igång
För att få åtkomst till AppActions
funktioner krävs följande plattformsspecifika installation.
I filen Platforms/Android/MainActivity.cs lägger du till åsidosättningarna OnResume
och OnNewIntent
i klassen MainActivity
och följande IntentFilter
attribut:
[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);
}
}
Skapa åtgärder
Appåtgärder kan skapas när som helst, men skapas ofta när en app startar. Om du vill konfigurera appåtgärder anropar du metoden ConfigureEssentials(MauiAppBuilder, Action<IEssentialsBuilder>) på MauiAppBuilder-objektet i MauiProgram.cs-filen. Det finns två metoder som du måste anropa på IEssentialsBuilder-objektet för att aktivera en appåtgärd:
-
Den här metoden skapar en åtgärd. Det krävs en
id
sträng för att unikt identifiera åtgärden och entitle
sträng som visas för användaren. Du kan också ange en underrubrik och en ikon. -
Den delegering som skickas till den här metoden anropas när användaren initierar en appåtgärd, givet att instansen av appåtgärden finns. Kontrollera
Id
-egenskapen för åtgärden för att avgöra vilken åtgärd som startades av användaren.
Följande kod visar hur du konfigurerar appåtgärderna vid appstart:
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();
}
Svara på åtgärder
När appåtgärder har konfigureratsanropas metoden OnAppAction
för alla appåtgärder som anropas av användaren. Använd egenskapen Id
för att särskilja dem. Följande kod visar hur du hanterar en appåtgärd:
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);
}
});
}
Kontrollera om appåtgärder stöds
När du skapar en appåtgärd, antingen vid appstart eller när appen används, kontrollerar du om appåtgärder stöds genom att läsa egenskapen AppActions.Current.IsSupported
.
Skapa en app-åtgärd utanför bootstrap-programuppstarten
Om du vill skapa appåtgärder anropar du metoden 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") });
}
Mer information om appåtgärder
Om appåtgärder inte stöds på den specifika versionen av operativsystemet utlöses en FeatureNotSupportedException.
Använd AppAction(String, String, String, String) konstruktorn för att ange följande aspekter av en appåtgärd:
- Id: En unik identifierare som används för att svara på åtgärdstryckningen.
- Title: den synliga rubrik som ska visas.
- Subtitle: Om det finns stöd för en underrubrik som ska visas under rubriken.
- Icon: Måste matcha ikoner i motsvarande resurskatalog på varje plattform.
Hämta åtgärder
Du kan hämta den aktuella listan över appåtgärder genom att anropa AppActions.Current.GetAsync
.