Xamarin.Essentials: Extensions de plateforme
Xamarin.Essentials fournit plusieurs méthodes d’extension de plateforme lorsqu’il est nécessaire d’utiliser des types de plateforme tels que Rect, size et point. Cela signifie que vous pouvez convertir la version System
de ces types en types spécifiques iOS, Android et UWP.
Bien démarrer
Pour commencer à utiliser cette API, consultez le Guide de mise en route pour pour vérifier que la bibliothèque est correctement installée et configurée dans vos projets.
Utilisation d’extensions de plateforme
Ajoutez une référence à Xamarin.Essentials dans votre classe :
using Xamarin.Essentials;
Toutes les extensions de plateforme peuvent uniquement être appelées depuis le projet iOS, Android ou UWP.
Extensions Android
Ces extensions sont accessibles uniquement à partir d’un projet Android.
Activité du contexte & de l’application
À l’aide des extensions de plateforme de la Platform
classe, vous pouvez accéder au en cours Context
ou Activity
à l’application en cours d’exécution.
var context = Platform.AppContext;
// Current Activity or null if not initialized or not started.
var activity = Platform.CurrentActivity;
S’il existe une situation où le Activity
est nécessaire, mais que l’application n’a pas démarré complètement, la WaitForActivityAsync
méthode doit être utilisée.
var activity = await Platform.WaitForActivityAsync();
Cycle de vie des activités
Outre l’obtention de l’activité en cours, vous pouvez également vous inscrire aux événements de cycle de vie.
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();
Les États d’activité sont les suivants :
- Date de création
- Repris
- Suspendu
- Détruit
- SaveInstanceState
- Démarré
- Arrêté
Pour en savoir plus, consultez la documentation relative au cycle de vie de l’activité.
Extensions iOS
Ces extensions sont accessibles uniquement à partir d’un projet iOS.
UIViewController actuel
Accédez à la vue actuellement visible UIViewController
:
var vc = Platform.GetCurrentUIViewController();
Cette méthode retournera null
s’il est impossible de détecter un UIViewController
.
Extensions multiplateforme
Ces extensions existent dans toutes les plateformes.
Point
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();
Taille
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();
Rectangle
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();