原文地址: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. Codeforces Round #343 (Div. 2) B

    B. Far Relative’s Problem time limit per test 2 seconds memory limit per test 256 megabytes input st ...

  2. 【题解】ZJOI2009 假期的宿舍 网络流 最大流

    好久没有来写博客啦,来水一发. 网络流建模首先很容易想到,如果一个人能睡一张床,那么在这个人和这张床之间连接一条容量为1的边从s向每个需要住宿的人连容量为1的边,表示这个人需要住宿从每张床向t连容量为 ...

  3. aio 爬虫,去重,入库

    #aio 爬虫,去重,入库 import asyncio import aiohttp import aiomysql import re from pyquery import PyQuery st ...

  4. 【BZOJ1560】【JSOI2009】火星藏宝图 [DP]

    火星藏宝图 Time Limit: 10 Sec  Memory Limit: 64 MB[Submit][Status][Discuss] Description Input Output Samp ...

  5. [BZOJ1177][BZOJ1178][BZOJ1179]APIO2009解题报告

    抱着好奇心态去开始做APIO的往年试题感受一下难度 Oil Description 采油区域 Siruseri政府决定将石油资源丰富的Navalur省的土地拍卖给私人承包商以建立油井.被拍卖的整块土地 ...

  6. 安装magento配置完数据库后出现: PHP Extensions "0" must be loaded. 解决方案

    打开magento目录下的该文件: app/code/core/Mage/Install/etc/config.xml 将下面该段修改: <mysql4> <type>pdo_ ...

  7. CentOS7安装MySQL5.7以及修改密码

    CentOS7安装mysql [root@bd005 ~]# wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch. ...

  8. supervisor 简单使用

    supervisor是一个c/s系统,被用来在类Unix系统中监控进程状态.supervisor使用python开发. 服务端进程为supervisord,主要负责启动自身及其监控的子进程,响应客户端 ...

  9. 【字符串处理算法】字符串包含的算法设计及C代码实现【转】

    转自:http://blog.csdn.net/zhouzhaoxiong1227/article/details/50679587 版权声明:本文为博主原创文章,对文章内容有任何意见或建议,欢迎与作 ...

  10. java===java基础学习(1)---数据类型,运算,变量,常量

    今天起开始了java的学习之路,主要学习了数据类型和运算,变量,常量.基本和python有很多相通的地方,所以看起来很容易上手.下面是学习笔记! package testbotoo; public c ...