Merhabalar,
.NET MAUI ile beraber ConfigureLifecycleEvents methodu hayatımıza girdi. Temel amacı platform spesifik işlemleri platformlar özelinde geliştirmektense tek code-base yapısını bozmadan ihtiyaçlarımızı karşılayabilmek.
appBuilder
.UseMauiApp<App>()
.ConfigureLifecycleEvents(lifecycle => {
#if ANDROID
lifecycle.AddAndroid(d => {
d.OnBackPressed(activity => {
System.Diagnostics.Debug.WriteLine("Back button pressed!");
});
});
#endif
});
Ufak bir örnek incelediğimizde, eski Xamarin geliştiriciler Shared proje yapısının kulaklarını çınlattı bile 🙂
Örnekte yapılan aslında Android için fiziksel backbutton davranışını değiştirmek. (Örnekte sadece Diagnostic’e yazıyor)
builder.ConfigureLifecycleEvents(life =>
{
#if __ANDROID__
Platform.Init(MauiApplication.Current);
life.AddAndroid(android => android
.OnRequestPermissionsResult((activity, requestCode, permissions, grantResults) =>
{
Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
})
.OnNewIntent((activity, intent) =>
{
Platform.OnNewIntent(intent);
})
.OnResume((activity) =>
{
Platform.OnResume();
}));
#elif __IOS__
life.AddiOS(ios => ios
.ContinueUserActivity((application, userActivity, completionHandler) =>
{
return Platform.ContinueUserActivity(application, userActivity, completionHandler);
})
.OpenUrl((application, url, options) =>
{
return Platform.OpenUrl(application, url, options);
})
.PerformActionForShortcutItem((application, shortcutItem, completionHandler) =>
{
Platform.PerformActionForShortcutItem(application, shortcutItem, completionHandler);
}));
#elif WINDOWS
life.AddWindows(windows => windows
.OnLaunched((application, args) =>
{
Platform.OnLaunched(args);
}));
#endif
});
Android için; Permission handling, uygulama arka plandayken tekrar açtığımızda OnResume handling, iOS için; OpenUrl ve Activity handling, Windows için; OnLaunched handling gibi birçok özelliği yönetebiliyoruz.
#if #endif arasına debug attach edebiliyorsunuz.
https://github.com/dotnet/maui/blob/main/src/Controls/samples/Controls.Sample/Extensions/EssentialsExtensions.cs
Kaynak : https://devblogs.microsoft.com/dotnet/announcing-net-multi-platform-app-ui-preview-3/
Post A Reply