Xamarin.Essentials: Extensions de plateforme
Xamarin.Essentials fournit plusieurs méthodes d’extension de plateforme lorsque vous devez 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.
Démarrage
Pour commencer à utiliser cette API, lisez le guide de prise en main pour Xamarin.Essentials vous assurer 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 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.
Contexte et activité de l’application
À l’aide des extensions de plateforme de la classe Platform
, vous pouvez accéder à Context
ou à Activity
actif pour 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;
Si Activity
est nécessaire, mais que l’application n’a pas été entièrement démarrée, la méthode WaitForActivityAsync
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 :
- Créé
- 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.
Current UIViewController
Accédez au UIViewController
actuellement visible :
var vc = Platform.GetCurrentUIViewController();
Cette méthode retourne null
s’il n’est pas possible de détecter un UIViewController
.
Extensions multiplateforme
Ces extensions existent sur 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();