Xamarin.Essentials

Автор:

learn.microsoft.com

Xamarin.Essentials предоставляет единый кроссплатформенный API, который работает с любым приложением iOS, Android или UWP, доступ к которому можно получить из общего кода независимо от способа создания пользовательского интерфейса.

Установка

Xamarin.Essentials доступен в виде пакета NuGet и включается в каждый новый проект в Visual Studio. Его также можно добавить в любой существующий проект с помощью Visual Studio, выполнив следующие действия.

1. Загрузите и установите Visual Studio с инструментами Visual Studio для Xamarin.

2. Откройте существующий проект или создайте новый проект, используя шаблон Blank App в разделе Visual Studio C# (Android, iPhone & iPad или Cross-Platform).

Важно. При добавлении в UWP-проект убедитесь, что в свойствах проекта установлено значение Build 16299 или выше.

3. Добавьте пакет Xamarin.Essentials NuGet в каждый проект:

Visual Studio

На панели Solution Explorer щелкните правой кнопкой мыши на имени решения и выберите Manage NuGet Packages. Найдите Xamarin.Essentials и установите пакет во ВСЕ проекты, включая Android, iOS, UWP и библиотеки .NET Standard.

Visual Studio for Mac

На панели Solution Explorer щелкните правой кнопкой мыши на имени проекта и выберите Add > Add NuGet Packages..... Найдите Xamarin.Essentials и установите пакет во ВСЕ проекты, включая Android, iOS и библиотеки .NET Standard.

4. Добавьте ссылку на Xamarin.Essentials в любой класс C#, чтобы ссылаться на API.

using Xamarin.Essentials;

5. Xamarin.Essentials требует настройки под конкретную платформу:

Android

Xamarin.Essentials поддерживает минимальную версию Android 4.4, соответствующую уровню API 19, но целевая версия Android для компиляции должна быть 9.0 или 10.0, соответствующая уровню API 28 и 29. (В Visual Studio эти две версии устанавливаются в диалоге Project Properties для проекта Android, на вкладке Android Manifest. В Visual Studio для Mac они задаются в диалоге Project Options для проекта Android на вкладке Android Application.)

При компиляции под Android 9.0 Xamarin.Essentials устанавливает версию 28.0.0.3 библиотек Xamarin.Android.Support, которые ему необходимы. Любые другие библиотеки Xamarin.Android.Support, которые требуются вашему приложению, также должны быть обновлены до версии 28.0.0.3 с помощью менеджера пакетов NuGet. Все библиотеки Xamarin.Android.Support, используемые вашим приложением, должны быть одинаковыми и иметь версию не ниже 28.0.0.3. Обратитесь к странице устранения неполадок, если у вас возникли проблемы с добавлением Xamarin.Essentials NuGet или обновлением NuGet в вашем решении.

Начиная с версии 1.5.0 при компиляции под Android 10.0, Xamarin.Essentials устанавливает необходимые ему библиотеки поддержки AndroidX. Прочитайте документацию по AndroidX, если вы еще не сделали переход.

В MainLauncher проекта Android или в любой запускаемой Activity необходимо инициализировать Xamarin.Essentials в методе OnCreate:

protected override void OnCreate(Bundle savedInstanceState) {
   //...
   base.OnCreate(savedInstanceState);
   Xamarin.Essentials.Platform.Init(this, savedInstanceState); // add this line to your code, it may also be called: bundle
   //...

Чтобы обрабатывать разрешения во время выполнения на Android, Xamarin.Essentials должен получать любой результат OnRequestPermissionsResult. Добавьте следующий код во все классы Activity:

public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Android.Content.PM.Permission[] grantResults)
{
   Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
 
   base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}

iOS

По желанию, в запускаемом AppDelegate проекта iOS этот плагин может быть инициализирован в методе FinishedLaunching:

public override bool FinishedLaunching(UIApplication app, NSDictionary options) {
   //...
   Xamarin.Essentials.Platform.Init(() => provide your own сurrent UIViewController provider);
   //...

UWP

Дополнительная настройка не требуется.

Следуйте руководствам Xamarin.Essentials, которые позволяют копировать и вставлять фрагменты кода для каждой функции.

Другие ресурсы

Мы рекомендуем разработчикам, только начинающим работать с Xamarin, посетить раздел «Начало разработки Xamarin».

Посетите репозиторий Xamarin.Essentials на GitHub, чтобы ознакомиться с текущим исходным кодом, узнать, что будет дальше, запустить примеры и клонировать репозиторий.

Материалы по теме