Xamarin.Essentials: Rozszerzenia platformy
Xamarin.Essentials Udostępnia kilka metod rozszerzenia platformy, gdy trzeba pracować z typami platformy, takimi jak Rect, Size i Point. Oznacza to, że można konwertować między wersją System
tych typów dla określonych typów systemów iOS, Android i UWP.
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.
Korzystanie z rozszerzeń platformy
Dodaj odwołanie do Xamarin.Essentials klasy:
using Xamarin.Essentials;
Wszystkie rozszerzenia platformy mogą być wywoływane tylko z projektu systemu iOS, Android lub platformy UWP.
Rozszerzenia systemu Android
Dostęp do tych rozszerzeń można uzyskać tylko z projektu systemu Android.
Kontekst i działanie aplikacji
Za pomocą rozszerzeń platformy w Platform
klasie można uzyskać dostęp do bieżącej Context
lub Activity
uruchomionej aplikacji.
var context = Platform.AppContext;
// Current Activity or null if not initialized or not started.
var activity = Platform.CurrentActivity;
Jeśli występuje sytuacja, w której Activity
jest to konieczne, ale aplikacja nie została w pełni uruchomiona WaitForActivityAsync
, należy użyć metody .
var activity = await Platform.WaitForActivityAsync();
Cykl życia aktywności
Oprócz pobierania bieżącego działania możesz również zarejestrować się w celu uzyskania zdarzeń cyklu życia.
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
Xamarin.Essentials.Platform.Init(this, bundle);
Xamarin.Essentials.Platform.ActivityStateChanged += Platform_ActivityStateChanged;
}
protected override void OnDestroy()
{
base.OnDestroy();
Xamarin.Essentials.Platform.ActivityStateChanged -= Platform_ActivityStateChanged;
}
void Platform_ActivityStateChanged(object sender, Xamarin.Essentials.ActivityStateChangedEventArgs e) =>
Toast.MakeText(this, e.State.ToString(), ToastLength.Short).Show();
Stany aktywności są następujące:
- Utworzone
- Wznowione
- Wstrzymana
- Zniszczone
- SaveInstanceState
- Rozpoczęto
- Zatrzymana
Przeczytaj dokumentację cyklu życia działania, aby dowiedzieć się więcej.
Rozszerzenia systemu iOS
Dostęp do tych rozszerzeń można uzyskać tylko z projektu systemu iOS.
Bieżący element UIViewController
Uzyskaj dostęp do aktualnie widocznego UIViewController
elementu :
var vc = Platform.GetCurrentUIViewController();
Ta metoda zwróci null
wartość , jeśli nie można wykryć klasy UIViewController
.
Rozszerzenia międzyplatformowe
Te rozszerzenia istnieją na każdej platformie.
Osoba
var system = new System.Drawing.Point(x, y);
// Convert to CoreGraphics.CGPoint, Android.Graphics.Point, and Windows.Foundation.Point
var platform = system.ToPlatformPoint();
// Back to System.Drawing.Point
var system2 = platform.ToSystemPoint();
Rozmiar
var system = new System.Drawing.Size(width, height);
// Convert to CoreGraphics.CGSize, Android.Util.Size, and Windows.Foundation.Size
var platform = system.ToPlatformSize();
// Back to System.Drawing.Size
var system2 = platform.ToSystemSize();
Prostokąt
var system = new System.Drawing.Rectangle(x, y, width, height);
// Convert to CoreGraphics.CGRect, Android.Graphics.Rect, and Windows.Foundation.Rect
var platform = system.ToPlatformRectangle();
// Back to System.Drawing.Rectangle
var system2 = platform.ToSystemRectangle();