IT通用工具:好还是坏?

您想始终在相同的环境中工作吗? 这样您就不必在开发环境和使用工具时来回跳动。 当然,理想还很遥远,但是IT界为此奋斗。 今天,我们讨论一个单一的跨平台API库。 立即加入!



使用Xamarin开发适用于iOS和Android的应用程序时,开发人员可以使用C#访问任何本机API。 这些绑定不仅有助于在C#中使用适当的API,而且还提供该语言的强大功能,例如异步/等待,事件,委托等。

对于开发人员而言,这是一个巨大的优势,因为无论他们编写通用的业务逻辑,用户界面还是访问本机功能,他们都不必在C#之外工作。 程序员在Xamarin上开发跨平台应用程序时经常希望看到的关键功能之一是能够从通用代码访问通用本机功能,而不必编写自己的抽象层或查找社区创建的免费插件。

Xamarin.Essentials实现了一个单一API的梦想,该API可以访问Xamarin上构建的任何应用程序的功能,例如地理位置,传感器读数,安全存储等!


Xamarin.Essentials中的API


在今天提供的评估版中,Xamarin.Essentials API提供了从单个跨平台API库中访问25个以上本机函数的功能,无论用户界面的创建方式如何,都可以从通用代码中进行访问。 这意味着您可以将Xamarin.Essentials API与单个Xamarin.Android应用程序或适用于iOS,Android和UWP的Xamarin.Forms应用程序一起使用。 尽管有大量功能,但是由于不受链接程序的保护,因此对该库进行了全面优化,以实现最快的操作和对应用程序大小的最小影响。 这意味着您使用的API和功能将仅包含在您的应用程序中,其他所有内容将在编译时删除。

该库的评估版使用基本的跨平台API集,可以通过NuGet安装到您的应用程序中:


最初的API集是根据Xamarin开发人员关于他们希望在跨平台API库中看到的功能的反馈确定的。 随着时间的推移,我们将扩展此列表。

开始使用


只需执行以下几个简单步骤,即可在任何现有应用程序中轻松使用Xamarin.Essentials API。

1.打开一个现有项目或使用Visual Studio C#中的Blank App模板创建一个新项目(适用于Android,iPhone和iPad或跨平台)。

2.将Xamarin.Essentials NuGet软件包添加到项目中:

  1. 视觉工作室 在“解决方案资源管理器”面板中,右键单击解决方案的名称,然后选择“管理NuGet软件包”。 找到Xamarin.Essentials并将其安装在所有项目中,包括iOS,Android,UWP和.NET标准库。
  2. 适用于Mac的Visual Studio。 在“解决方案资源管理器”面板中,右键单击项目名称,然后选择“添加”>“添加NuGet程序包...”,找到Xamarin.Essentials并将该程序包安装在所有项目中,包括iOS,Android和.NET标准库。

3.在任何C#类中添加指向Xamarin.Essentials的链接以引用该API。

using Xamarin.Essentials; 

4. Xamarin.Essentials需要对Android项目进行一些额外的自定义,才能访问特殊功能:

Xamarin.Essentials必须使用MainLauncher内的OnCreate方法或Android项目中的任何其他Activity进行初始化:

 Xamarin.Essentials.Platform.Init(this, bundle); 

要在Android上处理运行时权限,Xamarin.Essentials必须获取任何OnRequestPermissionsResult。 将以下代码添加到所有Activity类:

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

做完了! 现在,您可以开始在应用程序中使用Xamarin.Essentials API。 每个API都带有完整的文档 ,包括可以复制到应用程序中的代码段。

请务必阅读我们的入门指南以获取更多信息。

指南针组装


在Microsoft Build 2018的演讲之一中 ,我展示了如何结合Xamarin.Forms和Xamarin.Essentials API的功能在不到10分钟的时间内组装跨平台指南针。 就像在应用程序中添加一些图像和一个小型罗盘用户界面一样简单:

  <Grid> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <Image HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" Source="compass.png"/> <Image HorizontalOptions="Center" VerticalOptions="Center" Source="arrow.png" x:Name="ImageArrow"/> <Label Grid.Row="1" x:Name="LabelInfo" VerticalOptions="Center" HorizontalOptions="Center" /> </Grid> 

我能够使用Xamarin中的罗盘 API。上面的代码中的基本功能可在罗盘更改位置,更新标签文本和旋转图像时记录事件。 所有这些都是通过几行代码完成的:

  using Xamarin.Forms; using Xamarin.Essentials; namespace MyCompass { public partial class MainPage : ContentPage { public MainPage() { InitializeComponent(); // Register for reading changes Compass.ReadingChanged += Compass_ReadingChanged; } void Compass_ReadingChanged(CompassChangedEventArgs e) { LabelInfo.Text = $"Heading: {e.Reading.HeadingMagneticNorth}"; ImageArrow.Rotation = e.Reading.HeadingMagneticNorth; } protected override void OnAppearing() { base.OnAppearing(); Compass.Start(SensorSpeed.Ui); } protected override void OnDisappearing() { base.OnDisappearing(); Compass.Stop(); } } } 


用这种简单的方法,创建了一个指南针应用程序! 您可以在GitHub上找到完整的源代码和图像。

未来计划


Xamarin.Essentials已经过全面测试,但我们仍然要求您在评估版中提供反馈。 在您的应用程序中尝试该库,并报告在使用Xamarin.Essentials GitHub存储库时遇到的任何问题。

我们将此库视为Xamarin平台的主要元素,并且我们知道这是所有开发人员和应用程序的重要构建块。 因此,我们将Xamarin.Essentials NuGet软件包集成到Visual Studio和Visual Studio for Mac中的每个iOS,Android和Xamarin.Forms模板中,以便开发人员可以在项目的最初阶段访问这些API。

亲眼看看


在Microsoft Build 2018上,您可以在演示文稿“使用Visual Studio和Xamarin创建移动应用程序”中看到Xamarin,Xamarin.Forms和Xamarin.Essentials的完整评论。



附加信息


您可以查看我们的文档以获取入门和使用每个Xamarin.Essentials函数完整指南。 我们还提供了API链接的完整列表,您可以在Internet上查看这些链接 ,以了解Xamarin.Essentials API的所有详细信息。

Source: https://habr.com/ru/post/zh-CN415021/


All Articles