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();

API