原文地址:https://blog.xamarin.com/cross-platform-apis-xamarin-essentials-latest-preview/

在 Microsoft Build 2018 我们宣布了 Xamarin.Essentials,一个帮助开发者构建原生应用的跨平台 API 核心套件。Xamarin.Essentials 提供给开发者通过共享代码访问超过30个特定平台的 API,包括地理位置、安全存储、传感器、设备信息和更多其他的 API。最重要的是,Xamarin.Essentials 可以用在任意的 iOS、Android、UWP 或者 Xamarin.Forms 应用,不管你如何创建用户界面。来自开发者的第一个预览版的反馈非常棒,访问这些原生特性的直截了当的方式受到了一致的赞扬。

今天,我们很高兴发布 Xamarin.Essentials(0.7.0-preview)的第二个预览版,今天在 NuGet 上就可以使用了。这个版本结合了开发者的反馈、bug 修复和几个新 API,今天你就可以试用了。

定位传感器

Xamarin.Essentials 第一个预览版提供给开发者访问加速计、陀螺仪、磁力计和指南针。根据你们的反馈,我们增加了一个定位传感器 API。这个 API允许你订阅读读取到报告回来的四元数变化,它描述了地球坐标相对于设备坐标的旋转。这在创建需要访问 3D 空间的应用时非常有用。

public class OrientationSensorTest
{
// Set speed delay for monitoring changes.
SensorSpeed speed = SensorSpeed.Ui; public OrientationSensorTest()
{
// Register for reading changes, be sure to unsubscribe when finished
OrientationSensor.ReadingChanged += OrientationSensor_ReadingChanged;
} void OrientationSensor_ReadingChanged(AccelerometerChangedEventArgs e)
{
var data = e.Reading;
Console.WriteLine($"Reading: X: {data.Orientation.X}, Y: {data.Orientation.Y}, Z: {data.Orientation.Z}, W: {data.Orientation.W}");
// Process Orientation quaternion (X, Y, Z, and W)
} public void ToggleOrientationSensor()
{
try
{
if (OrientationSensor.IsMonitoring)
OrientationSensor.Stop();
else
OrientationSensor.Start(speed);
}
catch (FeatureNotSupportedException fnsEx)
{
// Feature not supported on device
}
catch (Exception ex)
{
// Other error has occurred.
}
}
}

主线程 API

当开发在后台处理信息的应用时,在主线程上更新用户界面时很重要的。使用主线程 API,现在可以访问检测当前线程是否在主线程上,并开始在主线程上进行更新。我们在内部使用这个 API 来优化 Xamarin.Essentials 中的代码。

using Xamarin.Essentials;

public class MyViewModel
{
public bool UpdateUI()
{
MainThread.BeginInvokeOnMainThread(() =>
{
// Ensure invoked on MainThread. Xamarin.Essentials will optimize this and check if you are already on the main thread
});
} public bool ProcessInformation()
{
if(MainThread.IsMainThread)
{
// Start new thread to process on background
}
else
{
// Already on non-main thread.
}
}
}

简化的 Android 依赖

基于你们的反馈,Xamarin.Essentials 现在是针对 Android 8.1(API27)构建的,附带更新了2个 Android Support 库的依赖,CustomTabs 和 Core.Utils。这意味着你需要确认你的 Xamarin.Android 项目针对 Android 8.1(API27)编译,可以在项目的属性中设置。

请记住,在项目中拥有所有 Android Support 库的版本很重要,现在是更新你的项目中依赖的好时机。

Xamarin.Essentials 行动

准备好了解更多关于 Xamarin.Essentials 了嘛?没有比观看最新的 Xamarin Show 更进一步。Snack Pack 给出了 Xamarin.Essentials 的全面概述和如何开始集成到你的应用中。

视频地址(如果你可以看到): https://www.youtube.com/watch?v=uGby6JBG2pY

了解更多

在我们的完整发行说明可以阅读更多关于这个版本的信息并浏览我们完整的文档来确认,有一个全面的概述和如何使用 Xamarin.Essentials 的每一个特性。

(翻译)Xamarin.Essentials 最新预览版的更多跨平台 API的更多相关文章

  1. 挑战中英实时语音翻译——Skype Translator 中文预览版登陆中国

    Translator 中文预览版登陆中国" title="挑战中英实时语音翻译--Skype Translator 中文预览版登陆中国"> 今天,我们正式宣布在中国 ...

  2. win10最新预览版9926使用评估

    1月21日微软发布会,终于在周一发布了新的预览版本Build 9926,这个并不是客户预览版,仍然是开发者预览版,如图: 如果要查看自己的windows 10是那个版本,打开运行窗口,输入如下命令: ...

  3. Windows 10简体中文最新预览版Build 9926

    Windows 10 消费者预览版全新特性: • 全新的开始菜单Win 10的开始菜单产生了较大改变,磁贴界面在原有磁贴概念的基础上进行了大幅度的调整,新的磁贴界面开始支持纵向滚动,并可以利用开始按钮 ...

  4. .NET 6 预览版 7:新功能已完成 ,将专注于改进

    .NET 团队的项目经理 Richard Lander在宣布 .NET 6 Preview 7 时说:"这是 .NET 预览的又一季的结束.", 中文翻译:.NET 6 预览版 7 ...

  5. Win10《芒果TV - Preview》官方指定预览版 - 重要使用注意事项

    Win10<芒果TV - Preview>官方指定预览版,最新的改进和功能更新将会此版本优先体验. 重要使用注意事项: 1.因为方便过审核,默认将会员相关的操作提示简化: 2.使用中务必手 ...

  6. .NET 6 预览版 5 发布

    很高兴.NET 6 预览版5终于跟大家见面了.我们现在正处于.NET 6 的后半部分,开始整合一些重要的功能. 例如.NET SDK 工作负载,它是我们.NET 统一愿景的基础,可以支持更多类型的应用 ...

  7. 官宣 .NET MAUI 预览版 6

    最近,我们发布了.NET 多平台应用程序UI (MAUI)的最新进展. 在此版本中,我们全力支持Visual Studio 2022 预览版2.这也标志着我们首次将.NET MAUI 作为工作负载安装 ...

  8. .NET 4.5.1 预览版新特性

    上个月的微软Build大会上宣布了.NET 4.5.1的推出,Heydarian的这个演讲题为".NET开发中的新内容",涵盖了.NET Framework中一些重要的新特性. H ...

  9. Azure SQL 数据库最新版本现已提供预览版

     Tiffany Wissner  数据平台营销高级总监 我们之前在11月宣布将提供新的预览版,在该预览版中我们引入了接近完整的 SQL Server 引擎兼容性和更为高级的性能,这些都代表了下一代的 ...

随机推荐

  1. SDUT3926 kmp

    bLue的二叉树 Time Limit: 3000MS Memory Limit: 65536KB Submit Statistic Problem Description Keke 是一个喜爱种树的 ...

  2. MEF——.NET中值得体验的精妙设计

    摘要:.NET 是 Microsoft XML Web services 平台.MEF是.NET Framework 4.0一个重要的库,Visual Studio 2010 Code Editor的 ...

  3. 【java】AES加密解密|及Base64的使用

    转载自:http://www.cnblogs.com/arix04/archive/2009/10/15/1511839.html AES加解密算法,使用Base64做转码以及辅助加密: packag ...

  4. SourceTree for mac 注册过程(v2.7.6a)

    背景 为啥要自己注册呢,往上一堆一堆的老版本许可证偏不用,就愿意定制自己的账号style. 搞了半天,还是觉得pycharm自带的git工具就挺好用了,闲的没事记录一下. 要点 百度搜索的地址可以进入 ...

  5. 珠排序Bead Sort

    珠排序非常另类[地精也很另类],看完你就知道了,先介绍思路,再分解过程 这是它的英文论文 http://www.cs.auckland.ac.nz/~jaru003/research/publicat ...

  6. 常见XSD问题

    < xs:elementname="status"> < xs:complexType> < xs:sequence> < xs:elem ...

  7. 【BZOJ3875】【AHOI2014】骑士游戏 [Spfa][DP]

    骑士游戏 Time Limit: 30 Sec  Memory Limit: 256 MB[Submit][Status][Discuss] Description 在这个游戏中,JYY一共有两种攻击 ...

  8. 如何设计一个优雅健壮的Android WebView?(下)

    转:如何设计一个优雅健壮的Android WebView?(下) 前言 在上文<如何设计一个优雅健壮的Android WebView?(上)>中,笔者分析了国内WebView的现状,以及在 ...

  9. Farey Sequence (欧拉函数+前缀和)

    题目链接:http://poj.org/problem?id=2478 Description The Farey Sequence Fn for any integer n with n >= ...

  10. idea 导入 java json 包

    1.java 项目导包 找到 External Libraries 下面的java版本包,在点击鼠标右键.直接找到jar路径全部选中导入即可.